java通过HttpClient方式和HttpURLConnection方式调用WebService接口
2019-02-25 14:01
330 查看
版权声明:作者:上善若水rs 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 https://blog.csdn.net/sofeware333/article/details/87915854
1.引入maven依赖:
[code] <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency>
2.请求工具类:
[code]package com.hanvon.iface.web.utils; import org.apache.http.HttpEntity; 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; import org.apache.log4j.Logger; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; /** * webservice发送请求工具类 * Author:lsf * Date:19-01-08 */ public class WebServiceUtil { static int socketTimeout = 30000;// 请求超时时间 static int connectTimeout = 30000;// 传输超时时间 static Logger logger = Logger.getLogger(WebServiceUtil.class); /** * 使用SOAP发送消息(HttpClient方式) * * @param postUrl * @param soapXml * @param soapAction * @return */ public static String doPostSoap(String postUrl, String soapXml, String soapAction) { String retStr = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpPost httpPost = new HttpPost(postUrl); // 设置请求和传输超时时间 RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(socketTimeout) .setConnectTimeout(connectTimeout).build(); httpPost.setConfig(requestConfig); try { httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); httpPost.setHeader("SOAPAction", soapAction); StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); httpPost.setEntity(data); CloseableHttpResponse response = closeableHttpClient .execute(httpPost); HttpEntity httpEntity = response.getEntity(); if (httpEntity != null) { // 打印响应内容 retStr = EntityUtils.toString(httpEntity, "UTF-8"); logger.info("response:" + retStr); } // 释放资源 closeableHttpClient.close(); } catch (Exception e) { logger.error("请求出错!", e); } return retStr; } /** * 使用HttpURLConnection方式连接 * @param soapurl * @param soapXML * @return * @throws IOException */ public static String urlConnectionUtil(String soapurl,String soapXML) throws IOException { //第一步:创建服务地址 //http://172.25.37.31:8080/PeopleSoftService/getPerson.wsdl URL url = new URL(soapurl); //第二步:打开一个通向服务地址的连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //第三步:设置参数 //3.1发送方式设置:POST必须大写 connection.setRequestMethod("POST"); //3.2设置数据格式:content-type connection.setRequestProperty("content-type", "text/xml;charset=utf-8"); //3.3设置输入输出,因为默认新创建的connection没有读写权限, connection.setDoInput(true); connection.setDoOutput(true); //第四步:组织SOAP数据,发送请求 //将信息以流的方式发送出去 OutputStream os = connection.getOutputStream(); os.write(soapXML.getBytes()); StringBuilder sb = new StringBuilder(); //第五步:接收服务端响应,打印 int responseCode = connection.getResponseCode(); if(200 == responseCode){//表示服务端响应成功 //获取当前连接请求返回的数据流 InputStream is = connection.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); // StringBuilder sb = new StringBuilder(); String temp = null; while(null != (temp = br.readLine())){ sb.append(temp); } is.close(); isr.close(); br.close(); } os.close(); return sb.toString(); } }
相关文章推荐
- java 通过Ajax前台传参数 并用 HttpURLConnection Post方式访问对外的接口
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- 使用URL工具类调用webservice接口(soap)与http接口的实现方式
- Android通过HttpURLConnection和HttpClient接口实现网络编程
- java之使用HttpURLConnection调用WebService
- Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- java HttpUrlConnection get和post 模拟请求 调用接口
- Java使用HttpURLConnection调用WebService(原始方法)
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据
- 采用HttpURLConnection方式调用第三方接口,接口的返回值经过unicode编码处理
- restful接口客户端和服务端开发,HttpURLConnection,HttpClient,post ,get方式调用
- Java 以post请求方式通过json格式调用Webservice接口
- JAVA使用httpUrlConnection 调用http接口
- Android通过HttpURLConnection和HttpClient接口实现网络编程
- [实用工具类 / 方法] -- Java中通过HttpClient进行http接口调用请求 【难度 ★★★】...
- java发送post和get请求(1)---HttpURLConnection方式
- Java 调用C# webservice接口 生成java客户端 实现方式