📜  Apache HttpClient-Http获取请求(1)

📅  最后修改于: 2023-12-03 14:59:20.491000             🧑  作者: Mango

Apache HttpClient-Http获取请求

Apache HttpClient是一个流行的Java库,用于发送和接收HTTP请求和响应。此库提供了许多功能,使开发人员能够轻松地使用HTTP协议发送和接收请求。

HTTP Get请求

使用Apache HttpClient发送GET请求非常简单。

以下是一个简单的示例,该示例说明如何使用Apache HttpClient发送GET请求:

// 创建HttpClient对象
CloseableHttpClient httpclient = HttpClients.createDefault();

// 创建HttpGet对象
HttpGet httpget = new HttpGet("http://www.example.com/hello.php");

// 执行请求并获取响应
CloseableHttpResponse response = httpclient.execute(httpget);

try {
    // 打印响应状态
    System.out.println(response.getStatusLine());
    // 打印响应内容
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        System.out.println(EntityUtils.toString(entity));
    }
} finally {
    response.close();
}

在上面的示例中,我们首先创建了一个CloseableHttpClient对象。然后,我们创建了一个HttpGet对象,并传递了我们要请求的URI。最后,我们使用httpclient.execute()方法执行请求,并获取响应。

HTTP Post请求

发送POST请求的方法与发送GET请求的方法非常相似。

以下是一个简单的示例,说明如何使用Apache HttpClient发送POST请求:

// 创建HttpClient对象
CloseableHttpClient httpclient = HttpClients.createDefault();

// 创建HttpPost对象
HttpPost httppost = new HttpPost("http://www.example.com/post.php");

// 创建参数列表
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("username", "admin"));
formparams.add(new BasicNameValuePair("password", "admin123"));

UrlEncodedFormEntity uefEntity;
CloseableHttpResponse response = null;
try {
    uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
    httppost.setEntity(uefEntity);
    System.out.println("executing request " + httppost.getURI());
    response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        System.out.println(EntityUtils.toString(entity, "UTF-8"));
    }
} finally {
    if (response != null) {
        response.close();
    }
}

在上面的示例中,我们创建了一个HttpPost对象,并传递了要请求的URI。然后,我们创建了一个包含参数的List<NameValuePair>对象。这些参数将被编码为application/x-www-form-urlencoded格式,并发送到服务器。

在这个例子中,我们使用了UrlEncodedFormEntity,以便将我们的参数作为实体设置到HttpPost对象中。最后,我们执行请求,并打印服务器的响应。

结论

Apache HttpClient是一个流行的Java库,用于发送和接收HTTP请求和响应。使用它发送HTTP请求非常简单,因为它提供了许多有用的功能。使用这个库,你可以轻松地发送GET和POST请求,设置请求头和请求参数,处理重定向,和许多其他功能。