Java HttpClient GET与POST请求实战教程

5星 · 超过95%的资源 需积分: 48 383 下载量 69 浏览量 更新于2024-09-13 3 收藏 6KB TXT 举报
在Java中,Apache HttpClient 是一个广泛使用的库,用于执行HTTP客户端操作,如发送GET和POST请求。本文将详细介绍如何使用这个工具进行GET请求和带有表单参数的POST请求。 首先,我们需要导入必要的Apache HttpClient库组件,如`HttpClient`、`HttpGet`、`HttpPost`、`HttpEntity`、`NameValuePair`等。在`com.jadyer.util`包下,创建一个名为`HttpClientUtil`的类,用于封装这些功能: ```java import org.apache.http.*; import org.apache.http.client.*; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.*; import org.apache.http.impl.client.*; import org.apache.http.message.*; // ...其他import语句 public class HttpClientUtil { private static final HttpClient httpClient = new DefaultHttpClient(); / * 发送GET请求 * @param url 请求的URL * @return 响应体,如果有的话 * @throws IOException * @throws ClientProtocolException */ public static String sendGetRequest(String url) throws IOException, ClientProtocolException { HttpGet httpGet = new HttpGet(url); HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); if (entity != null) { try { return EntityUtils.toString(entity, "UTF-8"); } catch (UnsupportedEncodingException e) { // 处理编码问题 e.printStackTrace(); } } return null; } / * 发送POST请求,带有表单参数 * @param url 请求的URL * @param params 表单参数列表 * @return 响应体,如果有的话 * @throws IOException * @throws ClientProtocolException * @throws ParseException */ public static String sendPostRequest(String url, List<NameValuePair> params) throws IOException, ClientProtocolException, ParseException { HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) { try { return EntityUtils.toString(entity, "UTF-8"); } catch (UnsupportedEncodingException e) { // 处理编码问题 e.printStackTrace(); } } return null; } } ``` 在上面的代码中,我们定义了两个方法:`sendGetRequest` 和 `sendPostRequest`。`sendGetRequest` 方法接受一个URL作为参数,并使用`HttpGet`对象发送一个GET请求。响应体被转换为字符串并返回。`sendPostRequest` 方法则接收一个URL和一个包含表单参数的`NameValuePair`列表,使用`HttpPost`对象构建POST请求,并将参数添加到请求体中。 使用时,只需调用这两个方法并传递适当的参数,例如: ```java List<NameValuePair> formParams = new ArrayList<>(); formParams.add(new BasicNameValuePair("key1", "value1")); formParams.add(new BasicNameValuePair("key2", "value2")); try { String getResponse = HttpClientUtil.sendGetRequest("http://example.com/api"); System.out.println("GET Response: " + getResponse); String postResponse = HttpClientUtil.sendPostRequest("http://example.com/api", formParams); System.out.println("POST Response: " + postResponse); } catch (IOException | ClientProtocolException | ParseException e) { e.printStackTrace(); } ``` 这样,你就可以通过Apache HttpClient在Java应用中发送HTTP GET和POST请求,并处理响应内容了。这在构建Web服务客户端或API调用时非常有用。务必确保处理可能出现的异常,如编码错误和网络连接问题。