首页 > 开发 > Java > 正文

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

2024-07-14 08:41:59
字体:
来源:转载
供稿:网友

前言

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

示例代码:

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();  } }}

总结

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表