2023年8月1日发(作者:)

httpClient使⽤postMethod⽅法发送请求,携带参数并解决中⽂乱码问题前⾔:⼯作中遇到两个系统之间通信的问题,需求是这样的:要求将信息上报给上级部门(这⾥的上级部门是两⼀个系统),这就是跨系统通信了解决⽅案:使⽤httpclient实现⽹络通信,传递数据。关键问题:httpClient postMethod 传递参数 防⽌中⽂乱码⼀,所需jar包 maven引⽤如下: commons-httpclient commons-httpclient 3.0 commons-codec commons-codec 1.3 commons-logging commons-logging-api 1.1 ⼆,使⽤httpclient的postMethod⽅法发送请求: //创建PostMethod的⼦类设置编码格式 public static class UTF8PostMethod extends PostMethod{

public UTF8PostMethod(String url){

super(url);

}

@Override

public String getRequestCharSet() {

//return uestCharSet();

return "UTF-8";

}

} JSONObject json = ject(event);//将java对象转换为json对象

String str = ng();//将json对象转换为字符串

String url = "172.20.57.87:8080/gyly_ec_new3/api/mobileservices/district";//接⼝url

HttpClient client = new HttpClient();//创建httpClient对象 PostMethod post = new UTF8PostMethod(url);//创建PostMethod的⼦类UTF8PostMethod来设置编码 NameValuePair message = new NameValuePair("json", str);//post请求必须使⽤ NameValuePair 类传递参数 uestBody(new NameValuePair[]{message});

try { int code=eMethod(post);//发送数据 if (code==200) { n("请求成功!"); }else { n("请求失败!"); } } catch (HttpException e) { tackTrace(); } catch (IOException e) { tackTrace(); }finally { eConnection();//关闭连接

}上⾯的代码都有备注。主要说⼀下:PostMethod post = new UTF8PostMethod(url);//创建PostMethod的⼦类UTF8PostMethod来设置编码这⾥使⽤postMethod 对象,防⽌中⽂乱码,必须创建其⼦类UTF8PostMethod设置编码,才可以防⽌中⽂乱码。结语:在⽹上看了很多种httpclient的⽤法,⾃⼰在做的时候也遇到很多问题,现在问题解决了,写博客的时候却感觉没什么可写的,关键是找到正确的⽅式。如上代码中我已经实现,并且可以使⽤。如果你恰好也有同样的需求,在看了我的代码后有不明⽩的地⽅,可以给我留⾔,或者加我的qq:416404891,我会尽⼒给你解答。互相学习。。。。。。。。。。。。。。。。。。 晚安!

2023年8月1日发(作者:)

httpClient使⽤postMethod⽅法发送请求,携带参数并解决中⽂乱码问题前⾔:⼯作中遇到两个系统之间通信的问题,需求是这样的:要求将信息上报给上级部门(这⾥的上级部门是两⼀个系统),这就是跨系统通信了解决⽅案:使⽤httpclient实现⽹络通信,传递数据。关键问题:httpClient postMethod 传递参数 防⽌中⽂乱码⼀,所需jar包 maven引⽤如下: commons-httpclient commons-httpclient 3.0 commons-codec commons-codec 1.3 commons-logging commons-logging-api 1.1 ⼆,使⽤httpclient的postMethod⽅法发送请求: //创建PostMethod的⼦类设置编码格式 public static class UTF8PostMethod extends PostMethod{

public UTF8PostMethod(String url){

super(url);

}

@Override

public String getRequestCharSet() {

//return uestCharSet();

return "UTF-8";

}

} JSONObject json = ject(event);//将java对象转换为json对象

String str = ng();//将json对象转换为字符串

String url = "172.20.57.87:8080/gyly_ec_new3/api/mobileservices/district";//接⼝url

HttpClient client = new HttpClient();//创建httpClient对象 PostMethod post = new UTF8PostMethod(url);//创建PostMethod的⼦类UTF8PostMethod来设置编码 NameValuePair message = new NameValuePair("json", str);//post请求必须使⽤ NameValuePair 类传递参数 uestBody(new NameValuePair[]{message});

try { int code=eMethod(post);//发送数据 if (code==200) { n("请求成功!"); }else { n("请求失败!"); } } catch (HttpException e) { tackTrace(); } catch (IOException e) { tackTrace(); }finally { eConnection();//关闭连接

}上⾯的代码都有备注。主要说⼀下:PostMethod post = new UTF8PostMethod(url);//创建PostMethod的⼦类UTF8PostMethod来设置编码这⾥使⽤postMethod 对象,防⽌中⽂乱码,必须创建其⼦类UTF8PostMethod设置编码,才可以防⽌中⽂乱码。结语:在⽹上看了很多种httpclient的⽤法,⾃⼰在做的时候也遇到很多问题,现在问题解决了,写博客的时候却感觉没什么可写的,关键是找到正确的⽅式。如上代码中我已经实现,并且可以使⽤。如果你恰好也有同样的需求,在看了我的代码后有不明⽩的地⽅,可以给我留⾔,或者加我的qq:416404891,我会尽⼒给你解答。互相学习。。。。。。。。。。。。。。。。。。 晚安!