java使用common

网友投稿 276 2023-01-23


java使用common

前言

项目中需要请求第三方接口,而且要求请求参数数据为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();

http:// //下面将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();

}

}

}

总结

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Mybatis参数传递示例代码
下一篇:域用户共享文件系统(如何文件共享给域用户)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~