为什么我无法让此网络客户端使用此网址?

时间:2017-07-15 18:25:29

标签: vb.net

    Dim wc = New System.Net.WebClient

    Dim apistring = wc.DownloadString("https://www.coinexchange.io/api/v1/getmarketsummaries")

网址在浏览器中打开就好了。不知何故,webclient无法做到这一点。嗯....

问题是什么?

更新:我使用了带有useragent和cookies的修改后的webclient,它可以运行。我认为它检查用户代理之类的东西,但我不知道。

我仍然不知道问题是什么,仍然很好奇。如果有人想检查并检查是否自由。

基本上这个网站究竟是什么,以及我们可以用什么软件轻松检查问题所在。

1 个答案:

答案 0 :(得分:1)

某些网站不会响应仅包含Host标头的普通HTTP请求。它们需要额外的通用标头,这些标头通常在Web浏览器中生成时设置。

最常见的情况是,当WebClient请求失败时,服务器正在查找User-AgentAccept标头。服务器可以依赖这些头来确定如何将响应输出到客户端。一个典型示例是当API查看Accepttext/htmlapplication/xmltext/javascript的{​​{1}}时,以确定它是否应返回HTML,XML,Javascript或JSON。

根据网站的不同,它可能还会查找tapplication/json,“Cookie”,Referer和/或Accept-Language标题。

根据浏览器生成的内容尝试这些值的组合。

对于此特定网站,浏览器发送:

enter image description here

此网站正在寻找的标头是Accept-Encoding标头。如果它不存在则关闭连接并且不返回任何响应。