我试图在c#中自动执行一系列手动浏览器操作。手动执行时,每个POST返回的数据将用作下一步输入的一部分。序列中有一步重定向POST,我无法弄清楚如何从重定向URL获取响应。当我尝试直接获得响应时,它不是我期望的数据。
手动顺序如下: 1输入URL 2出现登录屏幕 3使用用户名和密码登录 4出现数据验证屏幕 5输入要验证的数据 6屏幕显示数据是有效还是无效 7输入要验证的下一个数据项 8等。
使用Fiddler,我捕获了手动过程。它在Login和Data Validation条目之后显示GET和响应。登录POST及其直接响应和随后的GET及其响应如下所示。 Fiddler Report on POST and GET
我一直使用的代码接收来自POST(重定向)的直接响应,但我无法从重定向URL获得响应。当我尝试直接GET到重定向URL时,响应不正确 - 可能是因为它不知道通过原始POST URL完成的登录。编辑:我正在使用的代码如下所示:
myCell.labelCell.text = self.dicArr[indexPath.row]["title"] as? String
我的问题/问题是如何从Fiddler能够捕获的重定向网址获得响应?
答案 0 :(得分:0)
简单的解决方案 - 别忘了饼干!
我忘了将.CookieContainer添加到每个Web请求中。因此,重定向不知道我的登录已经过验证,并且在我登录之前一直将我发回给我,并继续为我提供相应的响应。
在第一次调用web之前添加CookieContainer CC = new CookieContainer。 为每个请求添加request.CookieContainer = CC。