我正在尝试使用Curl登录Tumblr,在curl post logins下成功登录,但它重定向到mydomain.com/dashboard而不是tumblr.com/dashboard,我如何重定向到tumblr.com/dashboard?或者我应该使用GIST curl到tumblr.com/dashboard?
$url = 'https://www.tumblr.com/login';
$fields = array(
'user[email]'=> $email,
'user[password]'=>$pass,
'tumblelog[name]'=> '',
'user[age]'=> '',
'recaptcha_public_key'=> urlencode($key),
'recaptcha_response_field'=> '',
'hk'=> urlencode($hk[1]),
'http_referer' => 'https%3A%2F%2Fwww.tumblr.com%2Flogin'
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
var_dump($result);
P.s:我在cookie.txt中成功存储了cookie,我可以使用该cookie来获取tumblr.com/dashboard的内容
答案 0 :(得分:1)
$fields
使用http_build_query FFS。为什么要手动编码网址?差不多是2013年。CURLOPT_SSL_VERIFYPEER
和CURLOPT_SSL_VERIFYHOST
cURL选项设置为false 。执行此类操作时,无需验证其SSL证书。CURLOPT_CONNECTTIMEOUT
和CURLOPT_TIMEOUT
超时增加到30/60秒甚至更多,以防操作需要一段时间。 现在再试一次。记住,保持相同的CURLOPT_COOKIEFILE
和CURLOPT_COOKIEJAR
,如果你做对了,你会没事的。