java http 客户端 服务端_java http post/get 服务端和客户端实现json传输

PostHttpClient.java 客户端

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpException;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;

import org.apache.commons.httpclient.methods.EntityEnclosingMethod;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.methods.RequestEntity;

/**

* ********************************************************

* 采用httpclient插件的post方式发送流二进制流数据到HTTP服务端

**********************************************************

* ---@author [zt_zoro1272@163.com ]

**********************************************************

* ---@version

**********************************************************

* ---@since 2014-8-28

*/

public class PostHttpClient {

/**

* ********************************************************

* ---功能描述: 发送post请求,客户端采用二进制流发送,服务端采用二进制流介绍

**********************************************************

* ---@param json 入参的json格式的报文

* ---@param url http服务器的地址

* ---@return 返回响应信息

**********************************************************

* ---@author [zt_zoro1272@163.com ]

**********************************************************

* ---@since 2014-8-28

**********************************************************

* ---@update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]

**********************************************************

*

*/

public static String postHttpReq(String json,String url) {

HttpClient httpClient = new HttpClient();

byte b[] = json.getBytes();//把字符串转换为二进制数据

RequestEntity requestEntity = new ByteArrayRequestEntity(b);

EntityEnclosingMethod postMethod = new PostMethod();

postMethod.setRequestEntity(requestEntity);// 设置数据

postMethod.setPath(url);// 设置服务的url

postMethod.setRequestHeader("Content-Type", "text/html;charset=GBK");// 设置请求头编码

// 设置连接超时

httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(

5 * 1000);

// 设置读取超时

httpClient.getHttpConnectionManager().getParams().setSoTimeout(20 * 1000);

String responseMsg = "";

int statusCode = 0;

try {

statusCode = httpClient.executeMethod(postMethod);// 发送请求

responseMsg = postMethod.getResponseBodyAsString();// 获取返回值

} catch (HttpException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

postMethod.releaseConnection();// 释放连接

}

if (statusCode != HttpStatus.SC_OK) {

System.out.println("HTTP服务异常" + statusCode);

}

return responseMsg;

}

//POST方式发送HTTP请求

public static void main(String[] args) {

String json = "{\"PubInfo\": {\"clinet\": \"10.70.128.132\",\"company\": \"月月鸟0820\"},\"Request\": {\"strBillId\": \"18221075148\",\"strCcsOpId\": \"1234\"}}";

String url = "http://localhost:8080/httl_online/postHttpServer";

String outPackage = null;

outPackage = postHttpReq(json, url);

System.out.println("客户端日志----POST方式调用HTTP,请求报文为:" + json);

System.out

.println("\nauthor===========客户端日志----POST方式调用HTTP服务,HTTP服务端响应报文如下:=============\n");

System.out.println(outPackage);

System.out

.println("\nauthor================================================================\n");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值