String url = "http://www.google.com/search?q=httpClient"; HttpClient client = HttpClientBuilder.create().build(); HttpGet request = new HttpGet(url); // add request header request.addHeader("User-Agent", USER_AGENT); HttpResponse response = client.execute(request); System.out.println("Response Code : " + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); }
String url = "https://selfsolve.apple.com/wcResults.do"; HttpClient client = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(url); // add header post.setHeader("User-Agent", USER_AGENT); List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); urlParameters.add(new BasicNameValuePair("sn", "C02G8416DRJM")); urlParameters.add(new BasicNameValuePair("cn", "")); urlParameters.add(new BasicNameValuePair("locale", "")); urlParameters.add(new BasicNameValuePair("caller", "")); urlParameters.add(new BasicNameValuePair("num", "12345")); post.setEntity(new UrlEncodedFormEntity(urlParameters)); HttpResponse response = client.execute(post); System.out.println("Response Code : " + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); }
一个自动登录到Gmail完整的例子。
- 发送一个GET请求获得登录表单。
- 使用HTML解析器jsoup抢表单输入。
- 结构参数和进行认证的岗位要求。
- 发送另一个GET请求到Gmail。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.CookieHandler; import java.net.CookieManager; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; 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.HttpClientBuilder; import org.apache.http.message.BasicNameValuePair; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class HttpCilentExample { private String cookies; private HttpClient client = HttpClientBuilder.create().build(); private final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { String url = "https://accounts.google.com/ServiceLoginAuth"; String gmail = "https://mail.google.com/mail/"; // make sure cookies is turn on CookieHandler.setDefault(new CookieManager()); HttpCilentExample http = new HttpCilentExample(); String page = http.GetPageContent(url); List<NameValuePair> postParams = http.getFormParams(page, "username","password"); http.sendPost(url, postParams); String result = http.GetPageContent(gmail); System.out.println(result); System.out.println("Done"); } private void sendPost(String url, List<NameValuePair> postParams) throws Exception { HttpPost post = new HttpPost(url); // add header post.setHeader("Host", "accounts.google.com"); post.setHeader("User-Agent", USER_AGENT); post.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); post.setHeader("Accept-Language", "en-US,en;q=0.5"); post.setHeader("Cookie", getCookies()); post.setHeader("Connection", "keep-alive"); post.setHeader("Referer", "https://accounts.google.com/ServiceLoginAuth"); post.setHeader("Content-Type", "application/x-www-form-urlencoded"); post.setEntity(new UrlEncodedFormEntity(postParams)); HttpResponse response = client.execute(post); int responseCode = response.getStatusLine().getStatusCode(); System.out.println("\nSending 'POST' request to URL : " + url); System.out.println("Post parameters : " + postParams); System.out.println("Response Code : " + responseCode); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); } // System.out.println(result.toString()); } private String GetPageContent(String url) throws Exception { HttpGet request = new HttpGet(url); request.setHeader("User-Agent", USER_AGENT); request.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); request.setHeader("Accept-Language", "en-US,en;q=0.5"); HttpResponse response = client.execute(request); int responseCode = response.getStatusLine().getStatusCode(); System.out.println("\nSending 'GET' request to URL : " + url); System.out.println("Response Code : " + responseCode); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); } // set cookies setCookies(response.getFirstHeader("Set-Cookie") == null ? "" : response.getFirstHeader("Set-Cookie").toString()); return result.toString(); } public List<NameValuePair> getFormParams( String html, String username, String password) throws UnsupportedEncodingException { System.out.println("Extracting form's data..."); Document doc = Jsoup.parse(html); // Google form id Element loginform = doc.getElementById("gaia_loginform"); Elements inputElements = loginform.getElementsByTag("input"); List<NameValuePair> paramList = new ArrayList<NameValuePair>(); for (Element inputElement : inputElements) { String key = inputElement.attr("name"); String value = inputElement.attr("value"); if (key.equals("Email")) value = username; else if (key.equals("Passwd")) value = password; paramList.add(new BasicNameValuePair(key, value)); } return paramList; } public String getCookies() { return cookies; } public void setCookies(String cookies) { this.cookies = cookies; } }
相关推荐
6. **HttpClient Examples**:提供了一些示例代码,帮助开发者快速理解如何使用HttpClient,涵盖了基本的HTTP操作和复杂场景的处理。 使用Apache HttpClient 4.1.3,开发者可以轻松实现以下功能: - **发起HTTP...
压缩包中的`httpclient-4.0-alpha2.jar`文件包含了HttpClient库的所有类和方法,而`examples`文件可能包含了一些使用HttpClient的示例代码,帮助开发者更好地理解和使用这个库。通过这些示例,你可以学习如何构建...
HttpClient是Apache基金会开发的一个开源HTTP客户端库,广泛用于Java开发者进行网络通信。版本4.3.6是HttpClient的一个稳定版本,提供了丰富的功能和优化。这个压缩包“HttpClient-4.3.6”包含了该版本的所有核心...
HTTPClient是Apache软件基金会的一个开放源代码项目,提供了一个强大的HTTP客户端API,使得开发者能够方便地...通过阅读和实践"httpclient4.1_examples"中的代码,你可以更好地理解和掌握HTTPClient 4.x的核心特性。
4.1.3.jar、httpclient-cache-4.1.3.jar、httpcore-4.1.4.jar、httpmime-4.1.3.jar、commons-logging-1.1.1.jar、commons-codec-1.4.jar6个jar包,tutorial,javadoc和examples,资源来自hc.apache.org
10. **Documentation and Examples**:随包提供的文档和示例代码帮助开发者更好地理解和使用这些组件,快速上手开发。 在使用Apache HTTP Components时,开发者可以自定义配置,如设置连接超时、选择合适的连接池...
--examples --javadoc --lib --commons-codec-1.6.jar --commons-logging-1.1.1.jar --fluent-hc-4.2.5.jar --httpclient-4.2.5.jar --httpclient-cache-4.2.5.jar --httpcore-4.2.4.jar --...
3. **HttpClient**:随着Spring的发展,Spring Framework 5开始推荐使用Java.net.http.HttpClient或者Apache HttpClient作为底层HTTP客户端库,以实现更高效和灵活的REST客户端。 4. **WebClient**:Spring 5引入的...
Java作为一种广泛应用的编程语言,提供了多种方式来处理HTTP通信,如使用java.net.URL、HttpURLConnection或者Apache HttpClient库等。 1. **java.net.URL和HttpURLConnection**:这是Java标准库中的基础网络通信...
在Java中调用REST API通常会使用像HttpURLConnection或更高级的库,如Apache HttpClient或OkHttp。对于Clockify API,可能还会涉及到JSON库,如Jackson或Gson,用来序列化和反序列化API的响应数据。 在“api-...
Java提供多种方式来处理HTTP,如使用`java.net.URL`类进行低级别操作,或者使用Apache HttpClient、OkHttp等第三方库进行更高级别的请求和响应管理。 在“Blog-Examples-master”这个压缩包中,我们可能找到以下几...
官网下载地址:http://hc.apache.org/downloads.cgi ...最近学习httpclient,在网上搜的相关文档大都是httpclient4以下的,两者区别比较大,这个版本资料还是比较少,只能看英文的,顺便提高英语阅读了。
书中会介绍如何使用Java的HttpURLConnection类或者第三方库如Apache HttpClient来实现HTTP客户端和服务器的编程。 FTP(文件传输协议)则是用于在网络上进行文件传输的标准协议。Java提供了一个FTPClient类,可以...
3. **RESTful API集成**:可能包含如何使用Java的HTTP客户端库如HttpURLConnection、Apache HttpClient或OkHttp来调用外部REST服务的示例。 4. **消息队列集成**:如RabbitMQ或Kafka,这些消息中间件常用于处理异步...
`twitter4j-httpclient-support`模块表明Twitter4J支持使用Apache HttpClient作为HTTP客户端,提供了更灵活的网络连接选项。这允许开发者根据需求调整网络设置,如连接超时、重试策略等。 ### 总结 Twitter4J为...
- **Apache HttpClient**:功能强大,支持多线程,易于定制。 - **OkHttp**:现代、高效且易于使用的HTTP库。 3. **HTML解析** - **Jsoup**:Java库,用于解析HTML,提供DOM,CSS选择器等便捷功能。 - **...
4. **HTTP客户端库**:如HttpURLConnection、OkHttp或Apache HttpClient,用于从网页向Web服务器发送请求。 5. **状态码和HTTP头**:在API交互中如何使用它们来传递信息。 6. **安全性**:如何通过HTTPS、OAuth2或...
此外,还有许多第三方库如Apache HttpClient和OkHttp,提供了更高级的功能和更好的性能。 9. **HTTPS安全通信**:Java支持通过`SSLSocket`和`SSLServerSocket`进行安全的HTTPS通信,包括证书管理、SSL握手过程和...
An asynchronous, callback-based Http client for Android built on top of Apache's HttpClient libraries. Changelog See what is new in version 1.4.9 released on 19th September 2015 ...
HttpClient是Apache基金会的一个开源项目,它提供了一个强大的HTTP客户端API,用于执行各种HTTP请求。而Restlet则在其基础上进行了抽象,提供了一种更符合REST原则的接口,使得开发者可以更专注于业务逻辑,而不是...