有些登陆需要涉及到重定向
登录虾米音乐网的例子
httpclient4
public void login() throws Exception{
HttpClient httpclient = new DefaultHttpClient();
Properties prop = System.getProperties();
// HTTP代理的IP设置
prop.setProperty("http.proxyHost", "proxy.zj.*******.com");
// HTTP代理的端口设置
prop.setProperty("http.proxyPort", "8080");
//这里也可以设置不需要使用代理的地址
prop.setProperty("http.nonProxyHosts", "localhost|10.70.*.*");
HttpHost proxy = new HttpHost("proxy.zj.********.com", 8080, "http");
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
String url = "http://www.xiami.com/member/login";
HttpPost post = new HttpPost(url);
HttpClientParams.setCookiePolicy(httpclient.getParams(), CookiePolicy.BROWSER_COMPATIBILITY);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("done", "http://www.xiami.com/"));
nvps.add(new BasicNameValuePair("email", "s*****c@126.com"));
nvps.add(new BasicNameValuePair("password", "1*****"));
nvps.add(new BasicNameValuePair("submit", "登 录"));
post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpclient.execute(post);
post.abort();
System.out.println("返回码 :"+response.getStatusLine().getStatusCode());
if(response.getStatusLine().getStatusCode()== 302){
String tmpString = getHeaderValue(response.getAllHeaders(), "Location");
HttpGet get = new HttpGet(tmpString);
HttpResponse response1 = httpclient.execute(get);
System.out.println("返回码 :"+response1.getStatusLine().getStatusCode());
}
}
分享到:
相关推荐
当HttpClient发起一个GET或POST请求,如果服务器返回的状态码表明需要进行重定向(例如301、302),HttpClient会自动处理重定向,即它会自动发送新的请求到重定向的目标URL,并返回那个URL的响应内容。然而,如果...
在Web开发中,特别是使用JSP(Java Server Pages)进行服务器端编程时,经常需要通过HTTP客户端库(如HttpClient)来发起网络请求,包括GET和POST请求。其中,POST请求通常用于向服务器提交数据,例如用户表单数据的...
接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...
通过`java_httpclient_post`这个文件名,我们可以推测其中可能包含了完整的示例代码或者相关教程,你可以参考这个文件来实践和学习HttpClient的POST请求使用。记住,实践是检验理论的最好方式,尝试运行这个例子,看...
接下来,我们来看如何使用HttpClient进行GET和POST操作。GET请求通常用于获取资源,而POST请求常用于提交数据。 1. **GET请求**: GET请求的基本流程是创建HttpClient对象,构建HttpGet对象,然后通过HttpClient...
HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...
以下是对HttpClient、HttpPost和HttpGet及其所需jar包的详细解释: 1. HttpClient库:HttpClient是一个开源项目,提供了丰富的API来执行HTTP请求。它可以处理各种HTTP特性,如重定向、cookies管理、认证、连接池等...
《HttpClient 4.5:构建高效HTTP通信的基石》 HttpClient是Apache软件基金会的一个开源项目,主要用于处理HTTP请求和...通过理解并熟练掌握HttpClient 4.5的关键组件和用法,开发者可以提升网络应用的效率和可靠性。
这里我们详细探讨一下如何使用`HttpClient`发送POST请求,以及这个过程中的关键知识点。 首先,我们创建一个`CloseableHttpClient`对象,这相当于在编程环境中模拟了一个浏览器。`HttpClients.createDefault()`方法...
它包括了所有HTTP方法,如GET、POST、PUT和HEAD,以及自动重定向、HTTPS支持和代理服务器配置。使用HttpClient时,通常需要遵循以下步骤: 1. 创建HttpClient实例。 2. 实例化HTTP方法,如PostMethod或GetMethod。 3...
HttpClient的源码包含了大量类和接口,如`CloseableHttpClient`、`HttpGet`、`HttpPost`等,这些类用于构建和发送HTTP请求,处理响应。通过阅读源码,我们可以学习如何实现HTTP客户端的功能,如设置请求头、处理...
这些教程和文档通常会详细介绍如何初始化HttpClient,如何构造请求,如何处理响应,以及如何处理各种复杂情况,如重定向、异常处理、连接超时等。同时,它们也可能包含示例代码,帮助开发者更好地理解和应用...
本文将深入探讨在JSP中如何使用HttpClient的POST方法进行网络通信,特别是针对登录和其他需要发送数据到服务器的操作。 首先,POST方法是HTTP协议中的一个重要概念,它的主要作用是向服务器发送数据,通常用于创建...
HttpClient支持多种HTTP方法,如GET、POST、PUT、DELETE等,可以方便地进行HTTP头的设置,发送cookies,处理重定向,甚至实现HTTP/1.1和HTTP/2之间的平滑切换。此外,HttpClient还提供了对HTTPS的支持,确保数据传输...
HttpClient库允许开发者执行各种HTTP方法(如GET、POST、PUT等),处理重定向、认证、cookie管理等复杂网络交互,同时提供了线程安全和高效的连接管理机制。这个库在处理Web服务API、爬虫程序或任何需要与HTTP服务器...
三、使用HttpClient进行POST和GET 1. GET请求:通过HttpClient,我们可以轻松创建GET请求。首先,创建一个`HttpGet`对象,设置请求的URL,然后通过HttpClient的`execute()`方法发送请求并获取响应。例如: ```java...
关于"post请求"和"传输文件"的标签,HttpClient提供了一套完整的解决方案。在POST请求中,使用HttpPost对象来指定请求URL,然后可以通过HttpEntityEnclosingRequestBase类的setEntity()方法添加请求实体,这个实体...
例如,在Web服务API调用中,HttpClient可以方便地构造和发送GET、POST请求,获取并解析响应内容;在爬虫程序中,HttpClient可以处理登录、Cookie、重定向等复杂情况。 总结,HttpClient 4.5.3版本为开发者提供了...
2. **请求与响应处理**:HttpClient支持POST、GET等多种HTTP方法,可以设置请求头、携带实体数据,同时提供了HttpResponse对象来获取服务器响应状态、头信息和响应实体。 3. **重定向处理**:HttpClient可以自动...