【发布时间】:2021-02-01 17:52:58
【问题描述】:
我正在尝试重新创建提交表单。但由于某种原因,我的 POST 请求没有返回正确的页面。下面我包含了一个可以工作的原始 CURL 请求,然后是我的 Guzzle 代码,它不起作用。
我损坏的 Guzzle 代码和正常的 CURL 请求有什么区别?
我的 Guzzle 代码:
$jar = new \GuzzleHttp\Cookie\CookieJar;
$client = new \GuzzleHttp\Client([
'base_uri' => 'https://www.southeastwater.co.uk',
'cookies' => $jar,
]);
$res = $client->request('GET', '/my-water-supply/my-water-looks-smells-strange/check-your-water-quality-hardness');
$html = new \simplehtmldom\HtmlDocument($res->getBody());
$form = $html->find('form.sewForm',1);
foreach($form->find('input') as $n => $input){
$x = [
'name' => $input->name,
'contents' => $input->value,
];
$post[] = $x;
if($n == 0){ // This is button field does just manually add it after the first input
$post[] = [
'name' => 'Jump',
'contents' => '10',
];
}
}
$post = [
'multipart/form-data' => $post
];
$res2 = $client->post('/my-water-supply/my-water-looks-smells-strange/check-your-water-quality-hardness', $post);
echo $res2->getBody();
// But body is wrong, it's shows HTML as if I had just refreshed the page and not submitted the POST at all.
exit();
这是有效的 CURL 请求:
curl 'https://www.southeastwater.co.uk/my-water-supply/my-water-looks-smells-strange/check-your-water-quality-hardness'
-H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0'
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
-H 'Accept-Language: en-US,en;q=0.5' --compressed
-H 'Content-Type: multipart/form-data; boundary=---------------------------18455269113520999061513576751'
-H 'Origin: https://www.southeastwater.co.uk'
-H 'Connection: keep-alive'
-H 'Referer: https://www.southeastwater.co.uk/my-water-supply/my-water-looks-smells-strange/check-your-water-quality-hardness'
-H 'Cookie: __RequestVerificationToken=Tnrx3xY2ia2Dk5fBdi16ppscN3_TeR67OLBDf8mz1WeYzUZIUPLRjXMDUZJbN7uH5oEGZOkDG-m_sf_8waTv3bxfYyEQjiBHSI2HeNFGMMM1'
-H 'Upgrade-Insecure-Requests: 1'
--data-binary $'-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="__RequestVerificationToken"\r\n\r\nnlEsW1Iccl9L3dc_gNgdRzKO0VKRQxxznr3WV8SiKixyRZRCnlAuvKAZZEvERfJP-Al8wldrb5vSTIbeeZMXh8LSPSy6gTX9bTmQONCKnzg1\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="Jump"\r\n\r\n10\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="WaterHardnessStep10_Postcode.Postcode"\r\n\r\n\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="WaterHardnessStep10_Postcode.ContactReason"\r\n\r\n\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="WaterHardnessStep10_Postcode.IsPostcodeInSupplyArea"\r\n\r\nFalse\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="WaterHardnessStep10_Postcode.SummaryHTML"\r\n\r\n\r\n-----------------------------18455269113520999061513576751\r\nContent-Disposition: form-data; name="ufprt"\r\n\r\n674979BCF955C16BD4492455228446D83AF77F393A0590F7C5DFEB8B23D87FC7F5657AB9254637877D139888488F106804F9982255BDCC1895FBD49330FB5DBC2BEB0F5F43ECBCDF1B5441ADAA5C8F5EBC1BBAB24EA9E7E0A21F3429BDB5264E425D439FAB6C4863B68120C0A90C3BF990A5D01CDBA3C88716BFDFF84EABE11F447DA1607D0E3FBF2A2890DFB2420C8C\r\n-----------------------------18455269113520999061513576751--\r\n'
【问题讨论】:
标签: php web-crawler guzzle