我写了一个简单的蜘蛛来测试 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 以及各种浏览器进行测试)。