我试图使用PHP(5.6)和libcurl废弃网站.
该站点在asp.net中实现,可通过本地代理访问.站点使用HTTPS,因此不容易通过线路发送未加密的流量.
我在第一步失败了 - 登录.
$curl_options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_PROXY => 'http://localproxy.example.com:8080',
CURLOPT_PROXYUSERPWD => "$proxyUser:$proxyPass",
CURLOPT_PROXYAUTH => CURLAUTH_NTLM,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_WRITEHEADER => false,
CURLOPT_COOKIEJAR => $curl_cookie_jar,
CURLOPT_COOKIEFILE => $curl_cookie_jar
);
...
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $entryurl);
curl_setopt_array($ch, $curl_options);
$reply=curl_exec($ch);
curl_close($ch);
...
$postdata=array(
'username'=>'someuser', 'password'=>'s3cr3t',
'__VIEWSTATE'=>$vstate, '__VIEWSTATEGENERATOR'=>$vsgen
);
$ch=curl_init();
curl_setopt_array($ch, $curl_options);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postdata));
$reply=curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
在浏览器中,事件序列如下:
但是,当我使用PHP脚本尝试此操作时,在步骤4之后,响应是步骤2.
我已经尝试将脚本指向本地非SSL网站,以检查Curl是否正在按照我的预期进行操作.它是.
分析
我尝试添加浏览器中生成的所有额外标头(User-Agent,Accept,Accept-Language),没有任何影响.
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |