php – [Dead]如何利用异步回发成功发布到旧的ASP.NET站点
[更新]不幸的是我从来没有机会解决这个问题.但是,下面有一些有趣的回答值得尝试其他想要做类似事情的读者.
我正在尝试从运行ASP.NET的站点解析数据.这个站点有一个我成功遍历的登录页面(使用合法帐户)并存储了cookie,但是当我深入到该站点时,我需要通过异步回发更新UpdatePanel来导航它. UpdatePanel包含我想要的数据. 我正在尝试使用PHP和curl来完成所有这些.我可以成功加载初始页面.当我使用所有相关数据(通过Firefox的Tamper Data插件获取)发布到目标页面时,curl返回的回显结果总是清除我的页面.通常,回显结果只会在页面下方打印出来(或者发出一些错误/乱码文本). curl_error()不会打印任何内容,所以返回给我的内容有问题. 我很想知道如何从这里开始.请告诉我是否:a)你知道我得到了什么错误,b)如果甚至可以使用专门的PHP,c)如果相反,我需要刷掉javascript与ASP.NET的UpdatePanels进行交互. $uri = "TARGETURL"; $cl=curl_init(); curl_setopt($cl,CURLOPT_URL,$uri); curl_setopt($cl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0'); curl_setopt($cl,CURLOPT_COOKIEFILE,"/tmp/cookie2.txt"); curl_setopt($cl,CURLOPT_FOLLOWLOCATION,1); curl_setopt($cl,CURLOPT_RETURNTRANSFER,CURLOPT_CONNECTTIMEOUT,0); curl_setopt($cl,CURLOPT_POST,1); $postdata=array( "__VIEWSTATE" => $viewstate,"OTHER DATA" => "asdfkljsddflkjshdjf","__ASYNCPOST" => "true",); echo "<PRE>"; print_r($postdata); echo "</PRE>"; curl_setopt ($cl,CURLOPT_POSTFIELDS,$postdata); $result = curl_exec($cl); // execute the curl command echo $result; 这是我从服务器收到的标题和正文(通过电子邮件发送给我自己以绕过使用echo语句发生的页面清除): HEADER RESPONSE: HTTP/1.1 100 Continue HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: text/plain; charset=utf-8 Expires: -1 Server: Microsoft-IIS/7.5 X-Content-Type-Options: nosniff Set-Cookie: culture=en-US; expires=Tue,27-Nov-2012 20:02:37 GMT; path=/ X-Powered-By: ASP.NET Date: Mon,28 Nov 2011 20:02:37 GMT Content-Length: 112 BODY RESPONSE: 69|dataItem||<script type="text/javascript">window.location="about:blank"</script>|11|pageRedirect||/Error.aspx| 这解释了我在页面变为空白时遇到的问题(javascript重定向我的浏览器输出).它似乎也表明标题不是问题,因为我从错误的标题值中获取HTTP错误.
A.您在请求中声明您是Firefox浏览器:
curl_setopt($cl,’Mozilla / 5.0(Windows NT 6.1; WOW64; rv:5.0)Gecko / 20100101 Firefox / 5.0′); 不要声称你是Firefox: >如果你不能处理脚本(因为Firefox可以做到) 制作您自己的用户代理名称,或者根本不发送. ASP.NET检查用户代理是否支持回调: B.不要发送__ASYNCPOST = true(试一试). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |