java使用common-httpclient包实现post请求方法示例

时间:2022-09-28 21:47:54

前言

项目中需要请求第三方接口,而且要求请求参数数据为json类型的。本来首先使用的是httpclient的jar包,但是因为项目中已经使用了common-httpclient的jar包,引起了冲突,所以不得不使用common-httpclient来实现。

示例代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.io.bufferedreader;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.inputstreamreader;
import java.net.url;
import java.net.urlconnection;
import java.util.list;
import java.util.map;
import java.util.zip.gzipinputstream;
 
import org.apache.commons.httpclient.httpclient;
import org.apache.commons.httpclient.httpmethod;
import org.apache.commons.httpclient.namevaluepair;
import org.apache.commons.httpclient.methods.getmethod;
import org.apache.commons.httpclient.methods.postmethod;
import org.apache.commons.httpclient.methods.requestentity;
import org.apache.commons.httpclient.methods.stringrequestentity;
import org.apache.commons.io.ioutils;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
 
 
public class httputils {
 
 private static logger logger = loggerfactory.getlogger(httputils.class);
 
 /**
  * post请求
  * @param url
  * @param json
  * @return
  */
 public static string postjosncontent(string url, string json) throws exception {
//  httppost method = new httppost(url);
//  defaulthttpclient httpclient = new defaulthttpclient();
//  string ret = null;
//  try {
//   stringentity entity = new stringentity(json,"utf-8");//解决中文乱码问题 
//    entity.setcontentencoding("utf-8");
//    entity.setcontenttype("application/json");
//    method.setentity(entity);
//    httpresponse result = httpclient.execute(method);
//    ret = entityutils.tostring(result.getentity());
//  } catch (exception e) {
//   throw e;
//  } finally {
//   method.releaseconnection();
//  }
//  return ret;
  logger.error("请求接口参数:" + json);
  postmethod method = new postmethod(url);
  httpclient httpclient = new httpclient();
  try {
   requestentity entity = new stringrequestentity(json,"application/json","utf-8");
   method.setrequestentity(entity);
   httpclient.executemethod(method);
   logger.error("请求接口路径url:" + method.geturi().tostring());
   inputstream in = method.getresponsebodyasstream();
   //下面将stream转换为string
   stringbuffer sb = new stringbuffer();
   inputstreamreader isr = new inputstreamreader(in, "utf-8");
   char[] b = new char[4096];
   for(int n; (n = isr.read(b)) != -1;) {
    sb.append(new string(b, 0, n));
   }
   string returnstr = sb.tostring();
   return returnstr;
  } catch (exception e) {
   e.printstacktrace();
   throw e;
  } finally {
   method.releaseconnection();
  }
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://blog.csdn.net/u010398838/article/details/80708632