zoukankan      html  css  js  c++  java
  • HTTP Client 编写

    手头生正好有一个HTTP Client例子,使用socket 连接。代码如下:

    运行上述代码,返回如下:

    IP Address is : 211.100.26.77
    HTTP/1.1 302 Moved Temporarily
    Server: nginx/0.7.65
    Date: Fri, 02 Jul 2010 14:27:19 GMT
    Content-Type: text/html
    Content-Length: 161
    Connection: keep-alive
    Location: http://www.csdn.net/

    <html>
    <head><title>302 Found</title></head>
    <body bgcolor="white">
    <center><h1>302 Found</h1></center>
    <hr><center>nginx/0.7.65</center>
    </body>
    </html>

    这个代码基本上是一个最原始的http clinet,模拟了http协议,比如协议头。但是这段代码有几个问题:

    首先不能解析动态网页,如aspx等(不知道为什么,请知道的朋友告知,谢谢!)。

    其次,服务器返回的是一个二进制byte[],你需要自己解析得到的你需要的内容。

    因为我需要拿到的是一个二进制的png图片文件,并不关心头信息,如果能有一个library直接提供解析功能就好了。

    Apache common HttpClient 库提供了很好的封装,因此非常简单的几行代码(不及异常处理)就可以了。

    但是这个代码有时会给出如下警告:

    Jul 2, 2010 11:42:34 AM org.apache.commons.httpclient.HttpMethodBase getResponseBody
    WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.

    按照提示应该使用getResponseBodyAsStream。其中最后还有一个将byte[]生成图片并显示,并且判断图片大小后,重新设置图片大小的。下面是我的完整实例:

    参考:

    http://hc.apache.org/httpclient-3.x/tutorial.html

    http://hc.apache.org/httpclient-3.x/apidocs/index.html

  • 相关阅读:
    ConcurrentHashMap 实现缓存类
    maven 时区设置&ip&jdk编译版本
    【Hutool】工具类之日期时间工具-DateUtil
    正则表达式
    kafka connector
    kafka
    debezium、kafka connector 解析 mysql binlog 到 kafak
    网络流
    斜率优化
    8.8
  • 原文地址:https://www.cnblogs.com/ainima/p/6331333.html
Copyright © 2011-2022 走看看