`
Classicning
  • 浏览: 255730 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java Http Client

    博客分类:
  • Tech
阅读更多
为了准备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

    标签“java http post client server”暗示了我们要关注HTTP协议的POST方法。POST方法用于向服务器提交数据,常用于表单提交或发送JSON数据。在Java中,我们通常会把数据序列化成字符串,然后通过`setDoOutput`和`...

    JIRA REST Java Client

    在Java应用中集成JIRA REST Java Client,可以极大地提高开发效率,减少手动构造HTTP请求的繁琐工作。 首先,了解REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,...

    appium java-client-5.0.4.jar包

    《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-client-1.6.1.jar`是一个Java编程语言的客户端库,它提供了与特定服务器或服务进行交互的功能。这个版本号1.6.1表示这是该库的第1次重大更新、第6次次要更新和第1次补丁版本。这种命名方式遵循了通常的 ...

    selenium-java-client

    `selenium-java-client-driver-1.0.2.jar` 是一个专门用于Java编程语言的Selenium客户端驱动程序,它使得开发者能够编写自动化脚本来操控网页浏览器,进行功能测试和性能测试。Selenium是一个强大的开源自动化测试...

    java-client3.4和selenium-java-2.52 jar包

    Java客户端库Java-client3.4和Selenium WebDriver的Java绑定版本selenium-java-2.52是自动化测试领域中常用的技术栈,特别是针对基于Java的Web应用自动化测试。这两个库都与Appium紧密关联,Appium是一个开源的自动...

    极光推送JAVA服务端集成 jpush-api-java-client-master

    【极光推送JAVA服务端集成 jpush-api-java-client-master】是一个专门为Java开发者设计的极光推送(JPush)服务端SDK。极光推送是面向移动应用开发者提供的一套消息推送服务,它可以帮助开发者轻松实现向Android、...

    google-http-java-client-1.13.1-beta

    "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-client-1.13.1-beta.zip" 是一个包含Google HTTP Java客户端库的压缩包,这个库主要用于Java开发者与Google的HTTP API进行交互。它提供了简单且强大的方式来构建网络请求,处理响应,并集成到Java...

    http-client 解决中文编码包

    http-client 解决中文编码 jar包

    java MQTT server ,MQTT client 直接使用java实现,快速连接物联网

    支持 MQTT client 客户端。 支持 MQTT server 服务端。 支持 MQTT 遗嘱消息。 支持 MQTT 保留消息。 支持自定义消息(mq)处理转发实现集群。 MQTT 客户端 阿里云 mqtt 连接 demo。 支持 GraalVM 编译成本机...

    jpush-api-java-client-3.3.0.zip

    `jpush-api-java-client-3.3.0.zip`是一个包含Java客户端SDK的压缩包,用于在服务器端集成极光推送服务,以便于通过Java代码来推送消息。 `JPushService.java` 文件很可能是服务端的核心接口类,包含了推送操作的...

    webhdfs-java-client-master

    WebHDFS Java Client是Hadoop生态系统中的一个关键组件,它为开发者提供了在Java环境中与Hadoop分布式文件系统(HDFS)交互的能力。"webhdfs-java-client-master"这个项目很可能是该客户端库的一个源码仓库主分支,...

    jpush-api-java-client-3.3.3.zip极光推送

    极光推送(JPush)是极光公司提供的一项云服务,它允许开发者通过HTTP RESTful API或者各种SDK(包括Java、iOS、Android等)将消息推送到指定的移动设备。服务支持单播、群播、广播等多种推送模式,并提供丰富的推...

    elasticsearch Client端的JAVA代码例子

    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

    "Yale CAS SSO JAVA Client" 是一个专为Java应用程序设计的身份验证服务,它利用了耶鲁大学开发的中央认证服务(Central Authentication Service, CAS)。CAS是一种开放源代码的单点登录(Single Sign-On, SSO)框架...

    java-ipfs-http-client-master_ipfs_java-ipfs_java_

    在`java-ipfs-http-client-master`压缩包中,包含了这个库的源代码,你可以深入了解其实现细节,包括如何处理HTTP请求、解析响应以及如何封装IPFS的API调用。通过阅读源码,开发者可以学习如何构建与IPFS网络的交互...

    Java 在Client-Server 网络中的应用

    ### Java在Client-Server网络中的应用详解 #### 一、Java网络应用模型 随着Java语言的广泛应用及其与互联网的高度融合,Java已经成为构建现代信息系统的重要工具之一。Java的特点,如跨平台性、面向对象的设计理念...

    saml-client_java_saml_client_

    之后,使用`SAMLMessageEncoder`将其编码为HTTP重定向或POST绑定格式。 2. **处理认证响应**: 在ACS端点上,使用`SAMLMessageDecoder`解码接收到的SAML响应。然后,使用`SignatureValidator`验证签名,确保响应未被...

    thrift 生成的java包httpclient-4.1.2.jar

    thrift 生成的java包httpclient-4.1.2.jar

Global site tag (gtag.js) - Google Analytics