我在尝试POST到需要查询字符串的脚本时遇到问题。我正在使用下面的代码,但如果我请求没有查询字符串的页面或将查询变量设置为“”,我会得到相同的错误响应。
例如http://example.com/login?validate
在浏览器中有效,但http://example.com/login?validate=""
没有(页面显示错误)
我的代码:
$client = new Client();
$crawler = $client->request("POST","https://www.example.com/cgi-bin/login?validate", array(
'USERNAME' => 'TEST',
'PASSWORD' => 'TEST'
));
答案 0 :(得分:0)
通常你会使用这样的路线:
$client->request('POST', '/login', array(
'USERNAME' => 'TEST',
'PASSWORD' => 'TEST'
)
);
在您的特定情况下,我认为您不需要添加?validate
,因为它应该在您提交表单时触发:
$client->request('POST', 'https://www.example.com/cgi-bin/login', array(
'USERNAME' => 'TEST',
'PASSWORD' => 'TEST'
)
);
另外,请确保您的字段为USERNAME
而非username
,区分大小写。