package net.zhutou.http;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* @author 猪头
*/
public class MyClient {
/**
*的到Http请求结果
* @param url请求地址
* @param parms请求参数
* @return
*/
public byte[] getBody(String url,Map parms){
byte[] body=null;
//构造HttpClient的实例
HttpClient httpClient = new HttpClient();
//创建GET方法的实例
PostMethod postMethod = new PostMethod(url);
//填入各个表单域的值
NameValuePair[] data = new NameValuePair[parms.keySet().size()]; Iterator it = parms.entrySet().iterator();
int i=0;
while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); data[i]=new NameValuePair(key.toString(),value.toString());
i++;
}
//将表单的值放入postMethod中
postMethod.setRequestBody(data);
try {
//执行postMethod
int statusCode = httpClient.executeMethod(postMethod); // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
//从头中取出转向的地址
Header locationHeader = postMethod
.getResponseHeader(“location”);
String location = null;
if (locationHeader != null) { location = locationHeader.getValue(); System.out .println(“The page was redirected to:” + location);
} else {
System.err.println(“Location field value is null.”);
}
}
body = postMethod.getResponseBody();
} catch (Exception e) {
e.printStackTrace();
}
return body;
}
public static void main(String[] args) {
String url=“http://www.huawei.com”;
Map parms=new HashMap();
MyClient client=new MyClient();
String result=new String(client.getBody(url, parms)); System.out.println(result);
}
}
分享到:
相关推荐
1. **HttpClient的创建**:首先,你需要创建一个HttpClient实例。通常,你会使用`HttpClientBuilder`或`HttpClients`类来构建一个客户端对象。例如: ```java CloseableHttpClient httpClient = HttpClients....
本实例将深入探讨如何在Java中使用HttpClient进行网络通信。 首先,你需要在项目中引入HttpClient的相关依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
本篇文章将详细介绍如何使用Java的HttpClient实现异步请求资源。 首先,让我们了解什么是异步请求。在同步请求中,调用一个API或发送一个HTTP请求后,程序会等待响应返回,然后继续执行后续代码。而异步请求则不同...
1. **创建HttpClient实例**:首先,创建一个HttpClient实例,可以使用`HttpClients.createDefault()`或者自定义配置。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. **执行登录...
- **创建HttpClient实例**:首先,我们需要创建一个HttpClient对象,例如使用`HttpClientBuilder`或`HttpClients.createDefault()`方法。 - **构建HttpGet请求**:使用`HttpGet`类创建一个HTTP GET请求,指定要...
接下来,`HttpClientUtil.java`文件可能是实现HttpClient工具类,提供一个静态方法来创建和初始化HttpClient实例。这个方法可能包含以下步骤: 1. 创建一个CloseableHttpClient实例,通常使用HttpClientBuilder构建...
以下是如何实现这一过程的Java代码: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import java.io.ByteArrayOutputStream; // 定义Page对象 public class Page { private ...
我们可以使用`HttpClients.createDefault()`来创建一个默认配置的HttpClient实例。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 接下来,我们需要定义一个`HttpGet`或`HttpPost`...
接下来,我们创建一个HttpClient实例,并设置必要的参数。这可能包括连接超时、读取超时等。例如: ```java import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org....
1. **创建HttpClient实例**:使用`HttpClientBuilder`或`HttpClients`静态工厂方法创建一个HttpClient实例。 ```java HttpClient httpClient = HttpClients.createDefault(); ``` 2. **构建HttpRequest**:...
要创建一个简单的HttpClient实例,你需要以下步骤: 1. 引入Apache HttpClient库: 在你的项目中,确保已经添加了Apache HttpClient的依赖。例如,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...
在这个例子中,我们首先创建了一个默认的HttpClient实例,然后定义了一个HttpGet请求对象,并指定目标URL。接着,我们通过HttpClient的execute方法发送请求并获取响应。这个例子展示了HttpClient库的基本用法,实际...
2. 创建HttpClient实例: ```java HttpClient httpClient = new DefaultHttpClient(); ``` 创建HttpClient实例是发送HTTP请求的第一步。在这里,我们使用了`DefaultHttpClient`作为默认实现。 3. 设置超时时间: ``...
实现调用远程servlet方法的实例。有详细注释。和依赖jar包。 //servlet路径 String url = "http://localhost:8080/zfw/servlet/CustomQueryServlet"; //参数一为表名,参数二为字段名 String params[] = {"ZC_...
1. 创建HttpClient实例: 使用`HttpClientBuilder`创建HttpClient对象,例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. 构建HttpGet或HttpPost请求: ```java ...
在"HttpClient实例+必备3个jar包"的项目中,包含了以下关键知识点: 1. **HttpClient类库**:HttpClient库提供了丰富的API,可以创建复杂的HTTP请求,包括设置请求头、携带请求体、处理重定向、管理Cookie等。通过...
接下来,我们需要创建一个HttpClient实例,同时配置它跳过SSL认证。这可以通过自定义`SSLContext`和`TrustStrategy`实现: ```java import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import ...
1. 创建HttpClient实例,可以自定义连接管理器、重试策略等。 2. 构建请求对象,如HttpGet或HttpPost,设置URL、参数等。 3. 执行请求,调用HttpClient的execute方法。 4. 处理响应,如检查状态码、读取响应体、关闭...
1. **创建HttpClient实例**:首先,我们需要创建一个HttpClient对象,这通常是通过HttpClientBuilder或HttpAsyncClientBuilder实现的。例如: ```java CloseableHttpClient httpClient = HttpClients.create...
在上面的示例代码中,我们首先创建了一个HttpClient实例,然后设置了要访问的URL,接着创建了一个GetMethod对象,并执行了GET请求。最后,我们读取了服务器返回的响应结果,并将其输出到控制台。 在下面的章节中,...