小编教你HttpPost方式调使用接口的3种方式
直接上代码
第一种:需要httpclient的依赖包
org.apache.httpcomponents
httpclient
4.3.5
会使用到httpcore-4.3.5.jar和httpcore-4.3.2.jar
public static String callBgrsjk(String requestParams) {
String url = null;
JSONObject jb=new JSONObject();
jb.put(“code”,0);
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(300 * 1000)
.setConnectTimeout(300 * 1000)
.build();
url = “http://URL:Port/地址”;
HttpPost post = new HttpPost(url);
post.setConfig(requestConfig);
post.setHeader(“Content-Type”,”application/json;charset=utf-8″);
StringEntity postingString = new StringEntity(requestParams,
“utf-8”);
post.setEntity(postingString);
HttpResponse response = httpClient.execute(post);
String content = EntityUtils.toString(response.getEntity());
System.out.println(content);
return content;
} catch (SocketTimeoutException e) {
LoggerUtil.error(“调使用Dat+”
+ “.aService接口超时,超时时间:” + 300
+ “秒,url:” + url + “,参数:” + requestParams, e);
return jb.toString();
} catch (Exception e) {
LoggerUtil.error(“调使用DataService接口失败,url:” + url + “,参数:” + requestParams,
e);
return jb.toString();
}
}
第二种:用jdk中的URL
/**
* 发送Http post请求
*
* @param xmlInfo
* json转化成的字符串
* @param URL
* 请求url
* @return 返回信息
*/
public static String doHttpPost(String xmlInfo, String URL) {
System.out.println(“发起的数据:” + xmlInfo);
byte[] xmlData = xmlInfo.getBytes();
InputStream instr = null;
java.io.ByteArrayOutputStream out = null;
try {
URL url = new URL(URL);
URLConnection urlCon = url.openConnection();
urlCon.setDoOutput(true);
urlCon.setDoInput(true);
urlCon.setUseCaches(false);
urlCon.setRequestProperty(“content-Type”, “application/json”);
urlCon.setRequestProperty(“charset”, “utf-8”);
urlCon.setRequestProperty(“Content-length”,
String.valueOf(xmlData.length));
System.out.println(String.valueOf(xmlData.length));
DataOutputStream printout = new DataOutputStream(
urlCon.getOutputStream());
printout.write(xmlData);
printout.flush();
printout.close();
instr = urlCon.getInputStream();
byte[] bis = IOUtils.toByteArray(instr);
String ResponseString = new String(bis, “UTF-8”);
if ((ResponseString == null) || (“”.equals(ResponseString.trim()))) {
System.out.println(“返回空”);
}
System.out.println(“返回数据为:” + ResponseString);
return ResponseString;
} catch (Exception e) {
e.printStackTrace();
return “0”;
} finally {
try {
if(out!=null){
out.close();
}
if(instr!=null){
instr.close();
}
} catch (Exception ex) {
return “0”;
}
}
}
第三种:用apache的commons包
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 小编教你HttpPost方式调使用接口的3种方式