java HTTP请求 DefaultHttpClient is deprecated

最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有被deprecated。去看了下官方文档,确实不推荐使用了,点击此处详情

  • DefaultHttpClient —> CloseableHttpClient
  • HttpResponse —> CloseableHttpResponse

官方给出了新api的样例,如下。

Get方法:

Get方法:

    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet("http://targethost/homepage");
    CloseableHttpResponse response1 = httpclient.execute(httpGet);
    // The underlying HTTP connection is still held by the response object
    // to allow the response content to be streamed directly from the network socket.
    // In order to ensure correct deallocation of system resources
    // the user MUST either fully consume the response content  or abort request
    // execution by calling CloseableHttpResponse#close().
    //建立的http连接,仍旧被response1保持着,允许我们从网络socket中获取返回的数据
    //为了释放资源,我们必须手动消耗掉response1或者取消连接(使用CloseableHttpResponse类的close方法)

    try {
        System.out.println(response1.getStatusLine());
        HttpEntity entity1 = response1.getEntity();
        // do something useful with the response body
        // and ensure it is fully consumed
        EntityUtils.consume(entity1);
    } finally {
        response1.close();
    }

Post方法:

    HttpPost httpPost = new HttpPost("http://targethost/login");
    //拼接参数
    List <NameValuePair> nvps = new ArrayList <NameValuePair>();
    nvps.add(new BasicNameValuePair("username", "vip"));
    nvps.add(new BasicNameValuePair("password", "secret"));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps));
    CloseableHttpResponse response2 = httpclient.execute(httpPost);

    try {
        System.out.println(response2.getStatusLine());
        HttpEntity entity2 = response2.getEntity();
        // do something useful with the response body
        // and ensure it is fully consumed
        //消耗掉response
        EntityUtils.consume(entity2);
    } finally {
        response2.close();
    }

再往下看HttpClients的源码,具体的实现都在HttpClientBuilderbuild方法中,有兴趣的可以去apache看源码。

    /**
    * Creates {@link CloseableHttpClient} instance with default
    * configuration.
    */
    public static CloseableHttpClient createDefault() {
        return HttpClientBuilder.create().build();
    }
时间: 2024-12-21 14:44:18

java HTTP请求 DefaultHttpClient is deprecated的相关文章

Java httpclient请求,解决乱码问题

public class HttpPostRequestUtil { public HttpPostRequestUtil() { } public static String post(String url, Map<String, String> maps) { // 第一步,创建HttpPost对象 HttpPost httpPost = new HttpPost(url); // 设置HTTP POST请求参数必须用NameValuePair对象 List<NameValuePa

java判断请求是否为ajax请求

/** * isAjaxRequest:判断请求是否为Ajax请求. <br/> * @param request 请求对象 * @return boolean * @since JDK 1.6 */ public boolean isAjaxRequest(HttpServletRequest request){ String header = request.getHeader("X-Requested-With"); boolean isAjax = "XM

java http请求

package com.expai.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.M

Java获取请求客户端的真实IP地址

Java获取请求客户端的真实IP地址 Java,获取客户端的IP地址的方法: request.getRemoteAddr() 这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了; 如果使用了反向代理软件,将http://192.168.1.110:2046 的URL反向代理为 http://www.javapeixun.com.cn的URL时, 用 request.getRemoteAddr() 方法获取的IP地址是:127.0

DefaultHttpClient is deprecated 【Api 弃用]】

最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有被deprecated.去看了下官方文档,确实不推荐使用了,点击此处详情. DefaultHttpClient —> CloseableHttpClient HttpResponse —> CloseableHttpResponse 官方给出了新api的样例,如下. Get方法: Closeabl

记录-java执行请求的URL

package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class H

多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.

通过原生的java Http请求soap发布接口

package com.aiait.ivs.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.

JMeter 初体验/Java 网络请求脚本添加

Jmeter  简易使用(网上有很多图片,教程,此处 只是简单 描述一下): Jmeter   软件使用,首先 创建一个  测试计划,在该 测试计划上右键  添加- ->Threads(Users) -->  线程组 然后在 线程组上 右键--> 添加-->Sampler-->Http 请求 . 在 Http 请求中配置 响应的信息,保存即可 然后需要创建响应的  结果树,创建步骤:(在 该 线程组上 右键,添加 -->监听器-->查看结果树 ) 可根据个人需求,