ログインフォームに記入し、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');
正常に動作しますが、このエラーが発生する場合があります。
Error in cURL request: name lookup timed out
Error: An Internal Error Has Occurred.
どうしたの?それを解決するにはどうすればよいですか?
私は同じ問題に遭遇しました:
Apacheを再起動した後、動作しました。とても奇妙。
timeoutの問題である可能性があります。接続タイムアウトを調整してみてください。
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'timeout' => 100
);
単一のcurlオプションを設定することもできます:
$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,
),
);
タイムアウトの問題であることがわかった場合は、タイムアウトパラメータを増やしすぎないでください。再試行回数を増やしてforループを作成することをお勧めします。
DNSサーバーが時間内に応答を返せなかったことを意味します。 DNS設定(Linuxの/etc/resolv.confなど)を確認し、それらが有効で機能していることを確認します。また、同じサーバーからURL内のホストにpingを実行して、PHPのみで問題が発生しているか、サーバーで実行されているアプリケーション(可能性が高い)であるかを確認します。