应用程序的工作方式与php的curl不同,而不是直接

时间:2011-09-13 21:37:18

标签: php curl fopen

这可能没有任何意义,但这就是我在这里的原因。我继承了一个网站,我正在尝试更多“功能”,像弗兰肯斯坦需要第二个左臂。

部分应用程序向全国各个服务提供商发出大约10个不同的API调用以获取报价。它通过生成几个不同的URL并使用mcurl并行获取它来实现此目的。这些都不返回任何html,它们每个都查询单个API并更新数据库。

运行需要几秒钟,在进行API查询时旋转其轮子,但数据库中没有任何内容更新。我可以在日志中看到所请求的每个URL。如果我把这些网址中的一个放在浏览器的地址栏中,它就可以了。调用api并更新数据库。

等等,还有更多!为了调试这些单独的脚本(因为它们没有输出),我使用fwrite()。这在我在浏览器的地址栏中使用URL时有效,但没有写入任何内容然后所有脚本都通过mcurl执行。 (准确地说多个curl_execute()。)

简而言之,当php使用curl执行脚本时,它不会更新mysql数据库,也不会允许我打开文件。如果我将GET请求从日志中剪切/粘贴到浏览器的地址栏中,这些都可以。

现在这个软件已经在现场工作了一段时间,并按预期为他们工作。我正在我的本地机器上进行开发,这就是它失败的地方。它只是非常简单。

- 戴夫

1 个答案:

答案 0 :(得分:0)

它必须是HTTP头中的内容,随请求一起发送。

如果您可以访问Web服务的代码(在帖子中没有提到),您可以转储该方的标题,将其写入文件或通过电子邮件发送,并查看mcurl调用之间的区别和浏览器调用。

$_SERVER 数组包含它们,其名称前缀为“HTTP ”。

另一个想法是在客户端窃听它,mcurl或浏览器来自哪里,虽然我坦率地不确定如何在不嗅探网络的情况下这样做。