我有一个脚本,它使用 cURL 和代理连接到页面,以每天检索信息。
在我的本地机器上运行,它连接良好并检索数据。当我尝试从 Hostgator 服务器运行相同的脚本时,它无法使用相同的代理运行(返回 400 错误),甚至根本没有代理。
到目前为止,我已经花了几个小时试图弄清楚这一点
1) 其他 url 工作正常,所以我知道这不一定是 PHP 设置问题或代理问题
2) 尝试通过 Yahoo 的 YQL 无标题浏览器访问 URL 时,我在本地或远程服务器上收到错误 - 查询语法错误 [第 1:88 行不匹配字符''期待'"']"
3) 在本地机器和远程服务器上使用 file_get_contents(而不是 cURL)可以正常打开页面。
到目前为止,我唯一的理论是,我尝试连接的服务器可以同时看到本地 IP 和主 IP(代理之一),并在请求来自特定本地 IP 时阻止请求,但仅在使用代理 - 虽然这似乎很牵强?!
有谁知道为什么在 Hostgator VPS 上使用 cURL 和代理会返回 400 错误,而相同的代码和代理可以在我的本地计算机上运行?