首页 > 代码库 > java使用httpcomponents post发送json数据
java使用httpcomponents post发送json数据
一、适用场景
当我们向第三方系统提交数据的时候,需要调用第三方系统提供的接口。不同的系统提供的接口也不一样,有的是SOAP Webservice、RESTful Webservice 或其他的。当使用的是RESTful webservice的时候,就可以使用httpcomponents组件来完成调用。
如我们需要发起post请求,并将数据转成json格式,设置到post请求中并提交。
url:"http://www.xxxxx.com/message"
json数据格式 {"name":"zhangsan", "age":20, "gender": "mail"} // 一个用户的基本信息
二、实例代码
1 package com.demo.test; 2 3 import java.io.IOException; 4 5 import org.apache.http.HttpEntity; 6 import org.apache.http.client.ClientProtocolException; 7 import org.apache.http.client.methods.CloseableHttpResponse; 8 import org.apache.http.client.methods.HttpPost; 9 import org.apache.http.entity.ContentType;10 import org.apache.http.entity.StringEntity;11 import org.apache.http.impl.client.CloseableHttpClient;12 import org.apache.http.impl.client.HttpClients;13 import org.apache.http.util.EntityUtils;14 15 public class Test {16 17 public static String sendInfo(String sendurl, String data) {18 CloseableHttpClient client = HttpClients.createDefault();19 HttpPost post = new HttpPost(sendurl);20 StringEntity myEntity = new StringEntity(data,21 ContentType.APPLICATION_JSON);// 构造请求数据22 post.setEntity(myEntity);// 设置请求体23 String responseContent = null; // 响应内容24 CloseableHttpResponse response = null;25 try {26 response = client.execute(post);27 if (response.getStatusLine().getStatusCode() == 200) {28 HttpEntity entity = response.getEntity();29 responseContent = EntityUtils.toString(entity, "UTF-8");30 }31 } catch (ClientProtocolException e) {32 e.printStackTrace();33 } catch (IOException e) {34 e.printStackTrace();35 } finally {36 try {37 if (response != null)38 response.close();39 40 } catch (IOException e) {41 e.printStackTrace();42 } finally {43 try {44 if (client != null)45 client.close();46 } catch (IOException e) {47 e.printStackTrace();48 }49 }50 }51 return responseContent;52 }53 54 public static void main(String[] args) {55 String json = "{\"name\":\"zhangsan\", \"age\":20, \"gender\": \"mail\"} ";56 String result = sendInfo("http://www.xxxxx.com/message", json);57 System.out.println(result);58 }59 }
发送请求之后,后台会打印返回的信息。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。