使用JavaHTTPClient发送请求
2024-09-08 19:00:27
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils; public class Main {
public static void main(String[] args){
String l_xml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tip=\"http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay\">\n" +
" <soapenv:Header/>\n" +
" <soapenv:Body>\n" +
" <tip:OperaNorPostRequest>\n" +
" <tip:request><![CDATA[<Request>\n" +
" <Access>\n" +
" <Authentication user='xxxx' password=''></Authentication>\n" +
" <Organization name='"+args[1]+"'></Organization>\n" +
" </Access>\n" +
" <RequestContent>\n" +
" <Parameter>\n" +
" <Record>\n" +
" <Field name='type' value='DBSplit'/> \n" +
" <Field name='rec' value='"+args[0]+"'/> \n" +
" </Record>\n" +
" </Parameter>\n" +
" </RequestContent>\n" +
"</Request>]]></tip:request>\n" +
" </tip:OperaNorPostRequest>\n" +
" </soapenv:Body>\n" +
"</soapenv:Envelope>";
//System.out.println(l_xml);
//创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
//创建HTTPClient
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
//创建HTTPPOST
HttpPost httpPost = new HttpPost("http://xxx.xxx.xxx.xxx/web/ws/r/aws_ttsrv2");
//设置超时时间
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000*30).setConnectTimeout(1000*30).build();
httpPost.setConfig(requestConfig);
System.out.println("配置完成");
try{
//配置post请求头
httpPost.setHeader("Content-Type","application/xml");
httpPost.setHeader("SOAPAction","\"\"");
httpPost.setHeader("Connection","keep-alive");
httpPost.setHeader("Accept-Encoding","gzip,deflate");
//配置post请求体
StringEntity data = new StringEntity(l_xml,"UTF-8");
data.setContentType("application/xml");
httpPost.setEntity(data);
//发送请求
CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
//获取响应体
HttpEntity httpEntity = response.getEntity();
System.out.println(response.getStatusLine().getStatusCode());
if(httpEntity != null){
String retStr = EntityUtils.toString(httpEntity,"UTF-8");
System.out.println(retStr);
}
closeableHttpClient.close();
}catch (Exception e){
System.out.println(e.toString());
}
}
}
依赖jar包:
最新文章
- C#委托
- 教你一招 - 如何给nopcommerce增加一个类似admin的area
- [BZOJ2152]聪聪可可(点分治)
- web前端开发学习:jQuery的原型中的init
- js-小效果-手风琴
- BZOJ2851 : 极限满月
- zw版【转发&#183;台湾nvp系列例程】HALCON MirrorRegion (Delphi)
- 使用个推的时候出现Installation error: INSTALL_FAILED_DUPLICATE_PERMISSION
- 用C++ 设计一个不能被继承的类
- NFC应用(二)读写器模式
- Android平台音频信号FFT的实现
- Class constructor
- 精通 VC++ 实效编程280例 - 01 窗口
- HDU4451Dressing(计数)
- var的一些理解
- Oracle第一波
- 开发指南专题六:JEECG微云高速开发平台代码生成
- 第八节,配置分布式TensorFlow
- java子类继承父类的方法(代码简略版)
- oracle-ords