这是一个两部分问题。是否可以通过使用WebClient / HttpWebRequest从通过javascript动态加载内容的页面中检索数据?
我还想如何使用WebClient / HttpWebRequest来复制XMLHttpRequest,就像通过javascript执行一样。
编辑: 我捕获了我试图复制的请求的标题,如下所示: http://www.tagged.com/api/?application_id=user&format=json&session_token=6thk20fhv7d727emgdhfka6034
POST / api /?application_id = user& format = json& session_token = 6thk20fhv7d727emgdhfka6034 HTTP / 1.1 主持人:www.tagged.com
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8 Accept-Language:en-us,en; q = 0.5
Accept-Encoding:gzip,deflate
Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7
X-Requested-With:XMLHttpRequest
Content-Type:application / x-www-form-urlencoded;字符集= UTF-8
内容长度:88
connect_status = -1; __utmb = 50703532.0.10.1303366930
DNT:1
连接:保持活力
Pragma:no-cache
缓存控制:无缓存
方法= tagged.usermgmt.addFriend&安培; uid_to_add = 5402501977&安培; api_signature =安培;轨道= 1mJ0lY7-W3
直到这个方法,我才明白一切。据我所知,你只能向HttpWebRequest.Method提供GET或POST。有人可能会为我填补空白吗?
答案 0 :(得分:2)
是否可以通过使用WebClient / HttpWebRequest从通过javascript动态加载内容的页面中检索数据?
不 - 您可以检索执行 JavaScript所需的所有JavaScript文件和其他文档,但HttpWebRequest
类不会为您执行该JavaScript - 这完全是一个更复杂的任务。
如果您想这样做,那么您可以在应用程序中托管Web浏览器,让浏览器打开并“呈现”页面,然后检查结果。一般而言,根据具体情况提出替代解决方案要容易得多,例如,如果JavaScript从AJAX请求填充页面,那么就直接自己运行请求。
我是否可以使用WebClient / HttpWebRequest来复制XMLHttpRequest,就像你会看到通过javascript执行一样?
如果您的意思是“我可以使用HttpWebRequest
执行类似于客户端JavaScript执行的AJAX请求的HTTP请求”,那么答案是肯定的,但是如何执行此操作将取决于JavaScript和参数用来执行AJAX请求。
在这种情况下,Web调试工具(例如Fiddler)非常有用,因为它允许您检查和比较正在进行的请求。
答案 1 :(得分:2)