为了准备LilyBookStore下一步的功能,访问豆瓣的API,今天熟悉了一下JDK和Commons HttpClient中和http相关的接口。Commons中的HttpClient现在已经从Commons中独立出来了,不过新的4.0版还没有stable的release,现在用的3.1还是打着Commons标记的。
JDK实例:
public void exe(String urlAsString) throws IOException{
URL url = new URL(urlAsString);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
int size = conn.getHeaderFields().size();
for(int i=0; i< size; i++){
System.out.print(conn.getHeaderFieldKey(i)+"\t");
System.out.println(conn.getHeaderField(i));
}
System.out.println("Request Method: "+conn.getRequestMethod());
System.out.println("Response Code: "+conn.getResponseCode());
System.out.println("Response Message: " +conn.getResponseMessage());
System.out.println("Last Modified: " +conn.getLastModified());
System.out.println("ContentHandler: " +conn.getContent().getClass().getName());
InputStream in = (InputStream)conn.getContent();
FileOutputStream out = new FileOutputStream(new File("index.html"));
copyStream(in, out);
}
java.net.HttpURLConnection里主要注意的就是getContent方法,对于不同的请求返回不同的对象。普通网页返回的是sun.net.www.protocol.http.HttpURLConnection$HttpInputStream,而图片、音频文件返回的则是各自的handler。
Commons的HttpClient实例:
public void exe(String urlAsString) throws IOException{
HttpClient client = new HttpClient();
HttpMethod http = new GetMethod(urlAsString);
http.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(1, false));
client.executeMethod(http);
System.out.println(http.getStatusCode());
System.out.println(http.getStatusText());
InputStream in = http.getResponseBodyAsStream();
FileOutputStream out = new FileOutputStream(new File("index2.html"));
copyStream(in, out);
http.releaseConnection();
}
Commons中除了getResponseBodyAsStream,还有getResponseBodyAsString,使用起来相对方便一些。
等开学以后到学校复杂的网络环境里试一下,再决定最后选择哪个。
分享到:
相关推荐
标签“java http post client server”暗示了我们要关注HTTP协议的POST方法。POST方法用于向服务器提交数据,常用于表单提交或发送JSON数据。在Java中,我们通常会把数据序列化成字符串,然后通过`setDoOutput`和`...
在Java应用中集成JIRA REST Java Client,可以极大地提高开发效率,减少手动构造HTTP请求的繁琐工作。 首先,了解REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,...
《Appium Java-client-5.0.4.jar在Android Studio中的自动化测试应用》 Appium Java-client-5.0.4.jar是针对Appium自动化测试框架的一个重要组件,主要用于Java编程环境下的移动应用自动化测试。Appium本身是一个...
`java-client-1.6.1.jar`是一个Java编程语言的客户端库,它提供了与特定服务器或服务进行交互的功能。这个版本号1.6.1表示这是该库的第1次重大更新、第6次次要更新和第1次补丁版本。这种命名方式遵循了通常的 ...
`selenium-java-client-driver-1.0.2.jar` 是一个专门用于Java编程语言的Selenium客户端驱动程序,它使得开发者能够编写自动化脚本来操控网页浏览器,进行功能测试和性能测试。Selenium是一个强大的开源自动化测试...
Java客户端库Java-client3.4和Selenium WebDriver的Java绑定版本selenium-java-2.52是自动化测试领域中常用的技术栈,特别是针对基于Java的Web应用自动化测试。这两个库都与Appium紧密关联,Appium是一个开源的自动...
【极光推送JAVA服务端集成 jpush-api-java-client-master】是一个专门为Java开发者设计的极光推送(JPush)服务端SDK。极光推送是面向移动应用开发者提供的一套消息推送服务,它可以帮助开发者轻松实现向Android、...
"google-http-java-client-1.13.1-beta" 是Google官方发布的一个Java库,主要用于在Android平台上进行HTTP网络通信。这个库包含了丰富的工具类,能够帮助开发者方便地实现各种HTTP请求,从而满足Android应用中的网络...
"google-http-java-client-1.13.1-beta.zip" 是一个包含Google HTTP Java客户端库的压缩包,这个库主要用于Java开发者与Google的HTTP API进行交互。它提供了简单且强大的方式来构建网络请求,处理响应,并集成到Java...
http-client 解决中文编码 jar包
支持 MQTT client 客户端。 支持 MQTT server 服务端。 支持 MQTT 遗嘱消息。 支持 MQTT 保留消息。 支持自定义消息(mq)处理转发实现集群。 MQTT 客户端 阿里云 mqtt 连接 demo。 支持 GraalVM 编译成本机...
`jpush-api-java-client-3.3.0.zip`是一个包含Java客户端SDK的压缩包,用于在服务器端集成极光推送服务,以便于通过Java代码来推送消息。 `JPushService.java` 文件很可能是服务端的核心接口类,包含了推送操作的...
WebHDFS Java Client是Hadoop生态系统中的一个关键组件,它为开发者提供了在Java环境中与Hadoop分布式文件系统(HDFS)交互的能力。"webhdfs-java-client-master"这个项目很可能是该客户端库的一个源码仓库主分支,...
极光推送(JPush)是极光公司提供的一项云服务,它允许开发者通过HTTP RESTful API或者各种SDK(包括Java、iOS、Android等)将消息推送到指定的移动设备。服务支持单播、群播、广播等多种推送模式,并提供丰富的推...
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); IndexRequest request = new IndexRequest("my_index").id("1").source(jsonBuilder() ....
"Yale CAS SSO JAVA Client" 是一个专为Java应用程序设计的身份验证服务,它利用了耶鲁大学开发的中央认证服务(Central Authentication Service, CAS)。CAS是一种开放源代码的单点登录(Single Sign-On, SSO)框架...
在`java-ipfs-http-client-master`压缩包中,包含了这个库的源代码,你可以深入了解其实现细节,包括如何处理HTTP请求、解析响应以及如何封装IPFS的API调用。通过阅读源码,开发者可以学习如何构建与IPFS网络的交互...
### Java在Client-Server网络中的应用详解 #### 一、Java网络应用模型 随着Java语言的广泛应用及其与互联网的高度融合,Java已经成为构建现代信息系统的重要工具之一。Java的特点,如跨平台性、面向对象的设计理念...
之后,使用`SAMLMessageEncoder`将其编码为HTTP重定向或POST绑定格式。 2. **处理认证响应**: 在ACS端点上,使用`SAMLMessageDecoder`解码接收到的SAML响应。然后,使用`SignatureValidator`验证签名,确保响应未被...
thrift 生成的java包httpclient-4.1.2.jar