httpUrlConnection设置请求标头

时间:2018-08-01 13:47:01

标签: url header web-crawler httpurlconnection

我最近开始通过参考其他人的代码来学习编写网络爬虫,其中一部分代码是关于下载目标网站的http url页面,因此它使用了 HttpUrlConnection 模块经过如此努力后,我无法理解下面的代码,任何人都可以提供一些基本的参考资料让我理解或只是向我解释吗?

connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("charset", encoding);
connection.setRequestMethod("GET");
connection.setConnectTimeout( 100000 );
connection.setReadTimeout( 100000 );
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");

第一,我不知道为什么 connection =(HttpURLConnection)url.openConnection()这样写,通常我们写 HttpURLConnection connection = new HttpURLConnection()我的意思是我们以此方式创建对象;
下一个我的意思是我知道那些设置的语法,这全都与设置客户端请求的标头有关,但我只是不知道这些设置的语法用于什么?为什么将它们设置为这些值而不是其他值?

我阅读了Core Java Volume 2的相关章节,但是它不能回答我的问题,我在Google上搜索了很多,但是只是找不到关于这些设置语法的解释,感谢您的帮助,谢谢〜

1 个答案:

答案 0 :(得分:0)

Java中类=PERCENTRANK(INDEX(T$2:T$28557,MATCH($A408,$A$2:$A$28557,0)):INDEX(T$2:T$28557,MATCH($A408,$A$2:$A$28557,1)),T407,3)*100 的方法openConnection返回一个URL,可以预先将其强制转换为URLConnection。您需要它来设置HTTP请求的其他必填字段,例如,设置请求方法(GET,PUT,POST)。这是您要求中最重要的字段。您应该根据请求的内容和请求的位置来决定。您可以使用的读取和连接超时值,通常用于服务器或客户端的互联网连接问题导致请求不返回响应的情况。最后,常用的HttpURLConnection方法为您的请求设置标题。

setRequestProperty

被广泛使用。为了确定Respose的内容类型,请首先调用con.setRequestProperty("Content-Type", "application/json");

getHeaderField

注意:如果您的请求需要其他参数,则应将它们放在地图中并输出到您的请求。