Java实现HTTP请求
2017-06-08 16:49
344 查看
一、利用RestTemplate来实现
RestTemplate是spring-web封装的一个请求类,基本可以满足一般业务需求。
除了exchange外,RestTemplate有许多可供开发者调用的接口,如传路径变量,参数等。
二、利用apache httpcomponents组件实现
1.导包
2.实现
RestTemplate是spring-web封装的一个请求类,基本可以满足一般业务需求。
private static RestTemplate restTemplate = new RestTemplate(); public static final HttpHeaders jsonAndXml; static { jsonAndXml = new HttpHeaders(); jsonAndXml.setContentType(MediaType.APPLICATION_JSON_UTF8); List<MediaType> mediaTypeList = new ArrayList<MediaType>(); mediaTypeList.add(MediaType.APPLICATION_XML); jsonAndXml.setAccept(mediaTypeList); } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> String response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(jsonAndXml), String.class).getBody();
除了exchange外,RestTemplate有许多可供开发者调用的接口,如传路径变量,参数等。
二、利用apache httpcomponents组件实现
1.导包
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.1</version> </dependency>
2.实现
HttpEntity body = new StringEntity(new Gson().toJson(root), ContentType.create("application/json", Consts.UTF_8)); DefaultBHttpClientConnection conn = null; try { HttpProcessor httpProcessor = HttpProcessorBuilder.create().add(new RequestContent()).add(new RequestTargetHost()).add(new RequestConnControl()) .add(new RequestUserAgent("Test/1.1")).add(new RequestExpectContinue(true)).build(); HttpRequestExecutor httpRequestExecutor = new HttpRequestExecutor(); HttpCoreContext coreContext = new HttpCoreContext(); HttpHost host = new HttpHost(HOST, PORT); coreContext.setTargetHost(host); conn = new DefaultBHttpClientConnection(8 * 1024); ConnectionReuseStrategy connectionReuseStrategy = DefaultConnectionReuseStrategy.INSTANCE; if (!conn.isOpen()) { Socket socket = new Socket(host.getHostName(), host.getPort()); conn.bind(socket); } BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST", url); request.setEntity(body); System.out.println("URL:" + request.getRequestLine().getUri()); httpRequestExecutor.preProcess(request, httpProcessor, coreContext); HttpResponse response = httpRequestExecutor.execute(request, conn, coreContext); httpRequestExecutor.postProcess(response, httpProcessor, coreContext); System.out.println("响应:" + response.getStatusLine()); System.out.println("响应的body" + EntityUtils.toString(response.getEntity())); System.out.println("====结束===="); if (!connectionReuseStrategy.keepAlive(response, coreContext)) conn.close(); else System.out.println("保持链接"); } catch (Exception e) { e.printStackTrace(); } finally { try { conn.close(); } catch (IOException e) { e.printStackTrace(); } }
相关文章推荐
- JAVA中利用socket实现HTTP请求
- (安全跨域)java.net.url实现后台发出http请求并返回数据
- (一)使用apache的commons-httpclient-3.1.jar之通过Java实现发起HTTP请求【不需要代理】
- JAVA实现发送HTTP请求,把请求来的页面下载到本地
- java实现并发的http请求
- java基于ApacheHttpClient发送Http请求实现
- Java实现Http请求参数对特殊字符的处理办法
- java 实现HTTP请求
- java实现http请求和响应的最简单的方式
- JAVA发送HTTP请求(https SSL)实现案例
- Java类实现发送Http请求(HttpClient)
- (安全跨域)java.net.url实现后台发出http请求并输出获取到的数据
- java 实现ajax发送http请求,直接访问服务器
- JAVA实现Python requests模块(JAVA实现Http请求)
- java实现http请求工具类示例
- HTTP详解(四):JAVA实现HTTP请求
- (二)使用apache的commons-httpclient-3.1.jar之通过Java实现发起HTTP请求【使用代理】
- Java 实现发送Http请求
- java 实现HttpRequest 发送http请求
- JAVA 使用HttpClient 实现简单发送HTTP请求 无返回结果