我们有一个脚本从远程服务器中提取一些XML。如果此脚本在生产以外的任何服务器上运行,则可以正常运行。
然而,它上传到生产,但它失败了。它正在使用cURL来处理请求,但无论我们如何做到这一点 - fopen,file_get_contents,套接字 - 它只是超时。如果我使用Python脚本来请求URL,也会发生这种情况。
每次都提供与另一个要查询的URL一起提供的相同脚本。显然它不会返回我们正在寻找的XML,但它会返回SOMETHINg - 它可以连接到远程服务器。
如果通过命令行使用例如curl或wget再次请求此URL,则返回数据。这不是我们正在寻找的数据(事实上,它返回一个空的根元素),但有些东西会回来。
有趣的是,如果我们从URL中删除查询字符串元素(完整的URL有7个查询字符串元素并且总共运行大约450个字符),脚本将返回相同的空XML响应。查询字符串的某些组合将再次导致脚本超时。
正如你可以想象的那样,让我感到非常困惑 - 除了它需要工作之外,它似乎适用于所有情况。我们可以在我们的开发服务器上获得响应,我们可以在命令行上获得响应如果我们删除某些QS元素,我们可以得到响应 - 我们无法通过LIVE服务器上的正确URL获得我们想要的响应。
有人有任何建议吗?我的智慧结束了!
答案 0 :(得分:1)
运行Wireshark并查看请求的进度。可能是防火墙问题,DNS解决问题等等。
另外,尝试将你的卷曲超时提升到更高的值,比如300s,看看它是怎么回事。