1.简单的获取一个HTML页面的内容
package com.bijian.study; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class HttpClientGetHtmlDemo { public static void main(String[] args) throws Exception { HttpClientGetHtmlDemo httpClientDemo = new HttpClientGetHtmlDemo(); httpClientDemo.getHTML(); } /** * 简单的获取一个HTML页面的内容 * @throws Exception */ public void getHTML() throws Exception { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpget = new HttpGet("http://www.baidu.com/"); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); String html = EntityUtils.toString(entity); System.out.println(html); httpclient.close(); } }
2.下载一个图片到本地
package com.bijian.study; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class HttpClientDownloadFileDemo { public static void main(String[] args) throws Exception { HttpClientDownloadFileDemo httpClientDemo = new HttpClientDownloadFileDemo(); httpClientDemo.downloadFile(); } /** * 下载一个图片到本地 * @throws Exception */ public void downloadFile() throws Exception { // 图片的网址 String url = "http://ww2.sinaimg.cn/large/9d57a855jw1dqpv9fp4yuj.jpg"; String destfilename = "D:\\cat.jpg"; // 生成一个httpclient对象 CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpget = new HttpGet(url); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); InputStream in = entity.getContent(); File file = new File(destfilename); try { FileOutputStream fout = new FileOutputStream(file); int l = -1; byte[] tmp = new byte[1024]; while ((l = in.read(tmp)) != -1) { fout.write(tmp, 0, l); } fout.flush(); fout.close(); } finally { // 关闭低层流。 in.close(); } httpclient.close(); } }
运行结束后,我们可以到D盘下看到cat.jpg,打开即可看到这只可爱又漂亮的猫。
3.post模拟人人网登陆
package com.bijian.study; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; public class HttpClientLoginDemo { private CloseableHttpClient httpclient; private HttpPost httppost;// 用于提交登陆数据 private HttpGet httpget;// 用于获得登录后的页面 private String login_success;// 用于构造上面的HttpGet public HttpClientLoginDemo() { httpclient = HttpClients.createDefault(); // 人人的登陆界面网址 httppost = new HttpPost("http://www.renren.com/PLogin.do"); } public void logIn(String name, String password) throws Exception { // 打包将要传入的参数 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("email", name)); params.add(new BasicNameValuePair("password", password)); httppost.setEntity(new UrlEncodedFormEntity(params)); try { // 提交登录数据 HttpResponse re = httpclient.execute(httppost); // 获得跳转的网址 Header locationHeader = re.getFirstHeader("Location"); // 登陆不成功 if (locationHeader == null) { System.out.println("登陆不成功,请稍后再试!"); return; } else// 成功 { login_success = locationHeader.getValue();// 获取登陆成功之后跳转链接 System.out.println("成功之后跳转到的网页网址:" + login_success); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void PrintText() throws IOException { httpget = new HttpGet(login_success); HttpResponse re2 = null; try { re2 = httpclient.execute(httpget); // 输出登录成功后的页面 String str = EntityUtils.toString(re2.getEntity()); System.out.println(str); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { httppost.abort(); httpget.abort(); httpclient.close(); } } public static void main(String[] args) throws Exception { String name = "username", password = "password"; // 自己的账号,口令 HttpClientLoginDemo httpClientLoginDemo = new HttpClientLoginDemo(); httpClientLoginDemo.logIn(name, password); httpClientLoginDemo.PrintText(); } }
如果账号密码不对,程序执行结果好像是对的,但稍加看下输出的内容,其实只是做了页面跳转。
文章来源:http://my.oschina.net/v5871314/blog/204812?fromerr=FPgwXe9e
相关推荐
Java访问WCF服务是跨平台通信的一个典型场景,其中WCF(Windows Communication Foundation)是微软提供的一个用于构建、部署和管理服务的框架。本示例将重点讲解如何使用Java的HttpClient库来调用WCF服务。 一、WCF...
《Android_3D游戏开发技术详解与典型案例》与《Android应用开发揭秘》是两本深入探讨Android平台开发的专业书籍,由杨丰盛编著。这两本书涵盖了从基础到高级的Android开发技术,特别强调了3D游戏开发和普通应用开发...
4. **用户通知**:支付成功后,系统应向用户发送支付成功的通知,这可能通过电子邮件、短信或者应用内消息的形式实现。 5. **异常处理**:在支付过程中可能出现各种异常情况,如网络问题、银行接口错误等,需要有...
15.1 典型云端应用--城市天气信息服务 372 15.2 网络通信技术与实现 374 15.2.1 网络通信技术介绍 376 15.2.2 Java URL类实现方式 377 15.2.3 Apache HttpClient实现方式 378 15.3 数据交换格式 380 15.3.1 纯...
在Java开发领域,小例子往往是学习和理解编程概念的关键。这个名为"important"的压缩包文件包含了一个典型的Java项目——myproject,它可能是为了展示一个基础但全面的Java编程概念或技术。通过分析这个项目,我们...
第四篇 Android应用开发案例 第13章 Ksoap2 13.1 SOAP协议 13.1.1 请求 13.1.2 响应 13.2 WSDL介绍 13.3 Ksoap2应用——天气预报 13.4 Ksoap2参数类型 13.4.1 CXF框架的Web Service 13.4.2 Android端开发 13.5 Base...
4. 多线程:C#中的System.Threading命名空间提供了多线程编程的支持,源代码可能涵盖并发控制、线程同步、异步编程(async/await)等内容。 5. 文件操作:C#提供了System.IO命名空间,包含读写文件、目录管理等功能...
5. **俄罗斯方块**:这是一个典型的图形游戏开发案例,涉及到图形用户界面(GUI)编程,事件处理,动画,以及游戏逻辑。Java的Swing或JavaFX库可以用来创建游戏界面,而游戏循环和逻辑则需要使用基础的数据结构和...
Java编程百个例子是针对Java初学者和进阶者的一份宝贵资源,它包含了各种典型且实用的编程示例,旨在帮助学习者更好地理解和掌握Java语言的核心概念与技术。通过这些例子,你可以深入理解Java的基本语法、面向对象...
在Android平台上,典型的“云端”应用案例包括预装的Gmail、日历和Google Map等服务。本章节聚焦于一个具体的Android天气信息查询案例,旨在展示如何构建一个云端应用。 #### 三、关键技术解析 1. **数据来源与...
"C#程序的100个实例(绝对精品)"提供了一套丰富的实践案例,旨在帮助开发者深入理解C#的特性并提升编程技能。这100个实例涵盖了C#的基础到进阶知识,包括但不限于变量、数据类型、控制流、函数、类与对象、异常处理...
【标题】"C#开发典型模块大全之我的浏览器模块源代码"揭示了使用C#编程语言构建一个自定义浏览器模块的实践案例。在C#的世界里,开发这样的模块需要对.NET Framework有深入的理解,尤其是对Windows Forms或WPF...
书中的例子可能会涵盖如何使用这些格式处理网络数据。 4. **HTTP协议**:作为互联网上最广泛使用的应用层协议,HTTP在Java网络应用开发中占有重要地位。Java的HttpURLConnection和HttpClient类提供了解析和构建HTTP...
《Java典型应用彻查1000例第二卷:网络应用开发》是一本深度探讨Java在互联网应用开发中的实践教程,包含丰富的源码示例、PPT讲解和配套习题,旨在帮助读者全面掌握Java在网络编程中的核心技能。这本书不仅提供了...
这个“angular小项目”是基于Angular框架实现的一个实践案例,旨在展示Angular的核心特性和最佳实践。下面我们将深入探讨Angular的相关知识点,并结合项目文件名进行解析。 1. **模块化(Modules)** 在Angular中...
在这个例子中,`webBrowser1.Navigate()`方法用于加载指定的网页,而`Navigating`事件则可以用来监听导航行为。 然而,`WebBrowser`控件基于较旧的Internet Explorer渲染引擎,可能不支持最新的Web标准和技术。为了...
该书旨在帮助读者掌握C#语言的实际应用,通过丰富的实战案例来提升编程技能。随书附带的压缩包文件提供了书中各个章节的源程序代码,方便读者对照学习,深入理解书中讲解的技术点。 这个压缩包涵盖了从chap01到chap...
6. **User-Agent**:描述了发出请求的客户端信息,例如`JakartaCommons-HttpClient/3.1`表明请求来自Jakarta Commons HttpClient库的第3.1版。 7. **Host**:指明了请求的目标服务器地址,包括IP地址和端口号,如`...