package sh.pl;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HTTPSample {
private static HttpClient httpClient = new DefaultHttpClient();
public static void main(String[] args) {
// 设置代理
// HttpHost proxy = new HttpHost("XXX.XXX.XXX.XXX", 8080);
// httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
// proxy);
String sn = "xxxxx"; // 你的sn
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("sn", sn);
httpGet("https://selfsolve.apple.com/agreementWarrantyDynamic.do",
requestParams);
httpClient.getConnectionManager().shutdown();
}
public static void httpGet(String url, Map<String, String> requestParams) {
HttpGet httpGet = null;
try {
// 参数设置
StringBuilder builder = new StringBuilder(url);
builder.append("?");
for (Map.Entry<String, String> entry : requestParams.entrySet()) {
builder.append((String) entry.getKey());
builder.append("=");
builder.append((String) entry.getValue());
builder.append("&");
}
String tmpUrl = builder.toString();
tmpUrl = tmpUrl.substring(0, tmpUrl.length() - 1);
httpGet = new HttpGet(tmpUrl);
System.out.println("executing request " + httpGet.getURI());
System.out.println("-------------------------------------");
HttpResponse response = httpClient.execute(httpGet);
// reponse header
System.out.println(response.getStatusLine().getStatusCode());
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
System.out.println(header.getName() + ": " + header.getValue());
}
System.out.println();
// 网页内容
HttpEntity httpEntity = response.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (httpGet != null) {
httpGet.abort();
}
}
}
public static void httpPost(String url, Map<String, String> requestParams, String urlEncode) {
HttpPost httpPost = null;
try {
// 参数设置
List<NameValuePair> params = new ArrayList<NameValuePair>();
for (Map.Entry<String, String> entry : requestParams.entrySet()) {
params.add(new BasicNameValuePair((String) entry.getKey(),
(String) entry.getValue()));
}
httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params, urlEncode));
System.out.println("executing request " + httpPost.getURI());
System.out.println("-------------------------------------");
// reponse header
HttpResponse response = httpClient.execute(httpPost);
System.out.println(response.getStatusLine().getStatusCode());
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
System.out.println(header.getName() + ": " + header.getValue());
}
System.out.println();
// 网页内容
HttpEntity httpEntity = response.getEntity();
System.out.println(EntityUtils.toString(httpEntity));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (httpPost != null) {
httpPost.abort();
}
}
}
}
分享到:
相关推荐
这个例子展示了HttpClient库进行POST请求的基本流程。实际应用中,你可能需要根据具体需求调整请求头、处理重定向、超时设置、错误处理等。了解这些知识点有助于编写更健壮、高效的网络请求代码。 通过`java_...
下面是如何创建一个简单的GET请求的例子: ```java CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); try { HttpResponse response = ...
HttpClient是Apache基金会开发的一个Java库,它为Java开发者提供了一种简单且强大的API来执行HTTP请求,无论是GET、POST还是其他HTTP方法。这个库的主要目标是简化与HTTP服务器的交互,使得开发人员能够轻松地创建...
在这个例子中,我们简单地打印了状态行并消费了实体,实际应用中可能需要对响应内容进行进一步处理。 在配置信息方面,HttpClient提供了许多可定制的选项。例如,可以设置连接超时、重试策略、代理配置等。例如,...
下面我们将深入探讨Android中使用HttpClient的例子及其相关知识点。 1. **HttpClient的基本概念** HttpClient是一个基于Java语言的HTTP客户端编程工具包,它提供了丰富的API,可以方便地创建、发送和处理HTTP请求...
HttpClient是Apache基金会开发...这个小例子虽然简单,但它揭示了HttpClient的基本用法,足以让新手快速入门。通过深入学习和实践,你可以掌握HttpClient的更多高级特性和最佳实践,从而在处理网络请求时更加得心应手。
这个例子“android和httpclient结合”旨在帮助初学者理解如何在Android项目中集成和使用HttpClient进行网络请求。 首先,HttpClient是一个强大的、可扩展的HTTP客户端,支持多种HTTP协议版本,包括HTTP/1.1。它提供...
通过理解上述概念和步骤,你将能够开始使用HttpClient进行简单的HTTP请求,并逐渐掌握更复杂的应用场景。对于源码分析和工具使用,你可以参考HttpClient的官方文档和相关教程,进一步了解其实现细节和优化技巧。
在Java中使用HttpClient发送GET请求相对简单。首先,需要创建一个`HttpClient`实例,然后使用`HttpGet`类构建一个GET请求,并设置请求URL。接下来,调用`execute()`方法来执行请求,最后解析返回的响应。 ##### ...
这个例子中,我们创建了一个`HttpClient`实例,然后用`GetMethod`对象指定要访问的URL。执行`executeMethod`方法发起请求,如果返回状态码为200(表示成功),则打印出响应体的内容。最后,调用`releaseConnection`...
在POST请求中,使用HttpPost对象来指定请求URL,然后可以通过HttpEntityEnclosingRequestBase类的setEntity()方法添加请求实体,这个实体可以是简单的文本,也可以是通过httpmime库构建的MultipartEntity,用于上传...
以下是一个简单的示例,展示如何使用HttpClient发送一个GET请求: ```java import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; ...
紧接着,文档提供了一个简单的例子来演示如何使用HttpClient进行基本的HTTP GET请求操作,该例子展示了如何用GET方法访问指定的URL并返回内容。接着,文档介绍了如何在HttpClient中传递参数,这部分内容会讲解通过...
以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; public ...
下面是一个使用 HttpClient 获取网页内容的例子: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; ...
本篇文章将详细讲解HttpClient的使用方法,包括如何搭建环境、所需的jar包、基本应用以及实例演示,旨在帮助初级学员快速掌握HttpClient的基础操作。 一、环境搭建 在使用HttpClient之前,首先需要在项目中引入...
一、HttpClient的简单使用 1. 添加依赖 在Java项目中使用HttpClient,首先需要添加对应的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents <artifactId>...
在这个例子中,我们创建了一个`CloseableHttpClient`实例,然后使用`HttpGet`构造一个GET请求到指定URL。`execute`方法执行请求,返回一个`CloseableHttpResponse`对象,我们可以从中获取状态行、响应体等信息。 ...
下面是一个简单的例子,演示如何使用HttpClient来读取一个网页的内容: ```java package http.demo; import java.io.IOException; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient...
以下是一个简单的使用HttpClient发送GET请求的例子: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpResponse ...