首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html响应HttpUrlConnection

Html响应HttpUrlConnection
EN

Stack Overflow用户
提问于 2018-01-29 23:35:44
回答 1查看 1K关注 0票数 0

我得到html响应,看起来非常糟糕,这是我的代码

我尝试了很多东西:

Reading a web page in Java

HTTP GET request get HTML page code instead of expected response

How can I get an http response body as a string in Java?

Java HttpURLConnection Example – Java HTTP Request GET, POST

代码语言:javascript
复制
String request        = "the url i put";
    URL    url            = new URL( request );
    HttpURLConnection conn= (HttpURLConnection) url.openConnection(); 
    conn.setRequestMethod( "GET" );
    conn.setRequestProperty( "Host", "the host site"); 
    conn.setRequestProperty("Upgrade-Insecure-Requests", "1");
    conn.setRequestProperty( "User-Agent", "Mozilla/5.0 (Linux; Android 4.4.2; SM-G350E Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36"); 
    conn.setRequestProperty( "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    conn.setRequestProperty( "Cache-Control", "max-age=0");
    conn.setRequestProperty( "Accept-Encoding", "gzip, deflate");
    conn.setRequestProperty( "Accept-Language", "en-US,en;q=0.8");
    conn.setRequestProperty("Referer","the referer");
    conn.setRequestProperty("Cookie", "MASANG_SESSION=4e5cgroc4jp74avrjg0g07d8o0; AWSELB=0FA97BBB0EC801F2C80B193E135DA89732D0ED599FE3E2B41CAFD3B1AC5974239BBAC347246D3B929A392DD3E3ED437652A2CB236E774C97C108D1CE69E0D8E158CB02341A; sso=dcfd12917c9c8c2ee230abd3a38908d8; MASANG_SESSION=4e5cgroc4jp74avrjg0g07d8o0; _ga=GA1.2.1394751435.1517184495; _gid=GA1.2.565595090.1517184495; _gat=1");
    conn.setRequestProperty("Accept-Charset", "UTF-8"); 
    conn.connect();         
    BufferedReader in = new BufferedReader(
            new InputStreamReader(conn.getInputStream()));      
    StringBuilder sb = new StringBuilder();
    String inputLine;  
    while ((inputLine = in.readLine()) != null) {
        sb.append(inputLine);
    }
    in.close(); 
    //print result
    System.out.println("result:::" + sb.toString());

输出响应

代码语言:javascript
复制
result:::‹ىغnغFِظٍ¨نF"©‹/‰,ٹ¬$عµ,¯-'†0"G’أ)ةn`ٹ}غ—½
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 03:57:32

您在输出中看到如此“奇怪”的响应体的原因很可能是因为它是gzipped格式的。您可以使用以下命令进行验证

代码语言:javascript
复制
System.out.println("Content-Encoding:::" + conn.getHeaderField("Content-Encoding")); 

之后

代码语言:javascript
复制
conn.connect()

您可以接收压缩后的响应,因为您正在使用conn.setRequestProperty( "Accept-Encoding", "gzip, deflate");发送请求(按照RFC2616上的HTTP规范)检查如何读取压缩后的响应,例如这里的http://www.rgagnon.com/javadetails/java-HttpUrlConnection-with-GZIP-encoding.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48504808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档