在我的代码中,我有一个include语句,它从外部URL加载代码,如下所示:
include 'http://123.123.123.123:8080/servlet/statemodel'
问题是,servlet需要大约35秒才能加载。
如果我在浏览器中访问http://123.123.123.123:8080/servlet/statemodel
,一切正常(我修改了IP,因为无论如何都无法通过互联网访问)。
然后使用iclude语句PHP
尝试包含该文件大约20秒,然后继续使用include语句后的代码。
没有错误消息。使用require也不会带来错误信息。
包括超时吗?为什么没有错误信息?
也许tomcat实际上发送数据(http-header),但PHP只等待大约20秒才能跟进一些内容?
我可以选择更改此超时吗?
答案 0 :(得分:5)
您可以使用此设置超时:
ini_set("default_socket_timeout", $value);
但是默认值是60秒,这应该足够了。
也许你可以找到更多:
error_reporting(E_ALL);
ini_set("display_errors", 1);
IMO最干净的解决方案是在提供PHP脚本的HTML后,使用AJAX请求加载servlet的内容。这样,用户可以获得快速结果,并且可以向他显示正在加载更多内容。