Fiddler でさまざまなことをテストするための単純なスパイダーを作成しました。このスクリプトは、Zend_Http_Client クラスの同じインスタンス (以下の例では $client) を使用して、Zend_Http_Client->request() でいくつかのリクエストを作成します。
Fiddler と Zend_Http_Client を使用する場合、最初の Zend_Http_Client->request() のみが機能します。後続のリクエストは「応答を読み取れないか、応答が空です」で失敗します。Fiddler を使用した Zend_Http_Client 構成は次のとおりです。
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Proxy',
'proxy_host' => '127.0.0.1',
'proxy_port' => 8888,
'timeout' => 60,
'useragent' => 'Local Site Spider Test',
'keepalive' => true,
'sslusecontext' => true
);
$client = new Zend_Http_Client('http://www.site.com/', $config);
上記の $client を使用した、失敗する単純な例を次に示します。
$response = $client->request();
echo $response->getHeadersAsString();
$client->setUri('http://www.site.com/file.html');
$response = $client->request();
echo $response->getHeadersAsString();
プロキシを使用しない場合、スパイダー自体は意図したとおりに 100% 動作するため、コード自体は問題ありません。Fiddler も機能しており、すべてのプロセスからのすべての要求をキャプチャします (WinInet およびさまざまなブラウザーでテスト済み)。