努力用PHP抓住asp.net
我试图使用
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); 在浏览器中,事件序列如下: > GET /结果302重定向到/Login.aspx?ReturnUrl=/Index.aspx 但是,当我使用PHP脚本尝试此操作时,在步骤4之后,响应是步骤2. 我已经尝试将脚本指向本地非SSL网站,以检查Curl是否正在按照我的预期进行操作.它是. 分析 >正在捕获和重播Cookie 我尝试添加浏览器中生成的所有额外标头(User-Agent,Accept,Accept-Language),没有任何影响.
我的问题是我不明白
curl只会向COOKIEJAR写入cookie而只能从COOKIEFILE读取.事实上,如果它们不在服务器的最后一个响应中,它似乎从COOKIEJAR中删除了cookie(仍然没有完全描述它).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |