jab*_*bar 15 php dns curl zend-framework zend-http-client
我写了一些填写登录表单的代码,并通过post方法提交.喜欢:
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
);
$this->siteObj = new Zend_Http_Client('http://example.com', $config);
$this->siteObj->setCookieJar();
$this->siteObj->setUri('http://example.com/login');
$this->siteObj->setParameterPost( 'data[User][name]', 'user' );
$this->siteObj->setParameterPost( 'data[User][password]', 'password' );
$response = $this->siteObj->request('POST');
Run Code Online (Sandbox Code Playgroud)
它的工作正常,但有时会发生此错误:
Error in cURL request: name lookup timed out
Error: An Internal Error Has Occurred.
Run Code Online (Sandbox Code Playgroud)
有什么问题?我能做些什么来解决它?
这可能是超时问题。尝试调整连接超时:
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'timeout' => 100
);
Run Code Online (Sandbox Code Playgroud)
您还可以设置单个卷曲选项:
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(
CURLOPT_USERAGENT => 'Zend_Curl_Adapter',
CURLOPT_HEADER => 0,
CURLOPT_VERBOSE => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => false,
),
);
Run Code Online (Sandbox Code Playgroud)
如果您发现这是超时问题,则我不建议增加太多的超时参数,而建议进行多次重试的for循环。
这意味着您的DNS服务器未能及时返回响应。检查您的 DNS 配置(例如 Linux 上的 /etc/resolv.conf),并确保它们处于活动状态并正常运行。还可以尝试从同一服务器对 URL 中的主机执行 ping 操作,以了解问题是否仅存在于 PHP 中,或者是否存在于服务器上运行的任何应用程序中(更有可能)。
| 归档时间: |
|
| 查看次数: |
33422 次 |
| 最近记录: |