c#如何从重定向的POST获得响应

时间:2016-10-13 05:54:02

标签: c# redirect

我试图在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能够捕获的重定向网址获得响应?

1 个答案:

答案 0 :(得分:0)

简单的解决方案 - 别忘了饼干!

我忘了将.CookieContainer添加到每个Web请求中。因此,重定向不知道我的登录已经过验证,并且在我登录之前一直将我发回给我,并继续为我提供相应的响应。

在第一次调用web之前添加CookieContainer CC = new CookieContainer。 为每个请求添加request.CookieContainer = CC。