Dim wc = New System.Net.WebClient
Dim apistring = wc.DownloadString("https://www.coinexchange.io/api/v1/getmarketsummaries")
网址在浏览器中打开就好了。不知何故,webclient无法做到这一点。嗯....
问题是什么?
更新:我使用了带有useragent和cookies的修改后的webclient,它可以运行。我认为它检查用户代理之类的东西,但我不知道。
我仍然不知道问题是什么,仍然很好奇。如果有人想检查并检查是否自由。
基本上这个网站究竟是什么,以及我们可以用什么软件轻松检查问题所在。
答案 0 :(得分:1)
某些网站不会响应仅包含Host
标头的普通HTTP请求。它们需要额外的通用标头,这些标头通常在Web浏览器中生成时设置。
最常见的情况是,当WebClient请求失败时,服务器正在查找User-Agent
或Accept
标头。服务器可以依赖这些头来确定如何将响应输出到客户端。一个典型示例是当API查看Accept
,text/html
或application/xml
或text/javascript
的{{1}}时,以确定它是否应返回HTML,XML,Javascript或JSON。
根据网站的不同,它可能还会查找tapplication/json
,“Cookie”,Referer
和/或Accept-Language
标题。
根据浏览器生成的内容尝试这些值的组合。
对于此特定网站,浏览器发送:
此网站正在寻找的标头是Accept-Encoding
标头。如果它不存在则关闭连接并且不返回任何响应。