博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java使用httpcomponents post发送json数据
阅读量:6300 次
发布时间:2019-06-22

本文共 2525 字,大约阅读时间需要 8 分钟。

一、适用场景

  当我们向第三方系统提交数据的时候,需要调用第三方系统提供的接口。不同的系统提供的接口也不一样,有的是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 }

  发送请求之后,后台会打印返回的信息。

转载地址:http://lkgta.baihongyu.com/

你可能感兴趣的文章
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>
基于RBAC权限管理
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>