InetRead()
监控几家商店的价格:
$data = BinaryToString(InetRead($url,1),4)
InetGet()
,它也没有返回任何数据。通过浏览器访问,页面正常显示。它返回 HTTP 状态代码 202。
Global $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", $RequestURL, False)
$oHTTP.Send()
If $oHTTP.status == 200 Then
Return $oHTTP.ResponseText
Else
Return "ooops... status: " & $oHTTP.status & @LF
EndIf
我该如何解决这个问题?对于相同的 URL,此错误并不总是发生。
网站可能被用户代理和/或引荐字符串重定向/阻止。使用
InetGet()
尝试更改用户代理,并通过以下方式强制重新加载:
HttpSetUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36")
InetGet("URL", "filename", 1)
使用 winhttp.winhttprequest.5.1 对象,尝试:
$oHTTP.Open("GET", $RequestURL, False)
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36")
$oHTTP.SetRequestHeader("Referer", $RequestURL)
$oHTTP.Send()
使用您自己的浏览器的用户代理字符串。如果这不起作用,请获取所有响应标头以缩小问题范围。在
.Send()
之后添加此内容,然后查看控制台窗口:
$AllResponseHeaders = $oHTTP.GetAllResponseHeaders()
ConsoleWrite($AllResponseHeaders)