您好我试图在社交网络中进行一些自动化。我成功地使用卷曲登录,但是我坚持另一个行动。
事情是我在登录后发送带有cookie的POST请求,并且从html表单解析参数以形成动作URL并且Curl在此请求上返回http代码200,但它应该返回302(我尝试了FOLLOWLOCATION false)。
我从curl请求中检索了所有数据,并尝试通过POSTMAN app发送它。它有效。我不明白为什么它不适用于curl。
<?php
session_start();
$svar = 'vaccines';
if( $_SERVER['REQUEST_METHOD']=='POST' ) $_SESSION[ $svar ]=$_POST;
?>
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<title>Sessions and POST data - vaccines</title>
</head>
<body>
<?php
if( isset( $_SESSION[ $svar ] ) ){
echo '<pre>',print_r( $_SESSION[ $svar ],true ),'</pre>';
}
?>
<form name='vaccines' method='post'>
<table>
<tr>
<td>ID</td>
<td><input type='text' name='vaccine-id' /></td>
</tr>
<tr>
<td>Name</td>
<td><input type='text' name='vaccine-name' /></td>
</tr>
<tr>
<td>Dose</td>
<td><input type='text' name='vaccine-dose' /></td>
</tr>
<tr>
<td>Price</td>
<td><input type='text' name='vaccine-price' /></td>
</tr>
<tr>
<td colspan=2><input type='submit' /></td>
</tr>
</table>
</form>
</body>
</html>
相同的代码已用于登录操作。
答案 0 :(得分:0)
经过几天的努力,我得出结论,问题不在于卷曲和邮递员之间的差异。当我尝试使用预定义的cookie发送curl请求时,发布数据并且它可以工作。
最后
html_entity_decode()
救了我的一天。已为curl设置的网址包含&amp; .amp;特殊字符而不是&amp;这就是麻烦的原因。