多平台统一管理软件接口,如何实现多平台统一管理软件接口
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~