想像小提琴手一样获得 http 响应结果
本文关键字:http 响应 结果 一样 小提琴手 | 更新日期: 2023-09-27 18:36:27
我试图获得与Fiddler从我的应用程序启动网页时获得的相同类型的结果。下面是我正在使用的代码和我得到的结果。 我仅以 google.com 为例。
我需要在代码中修改什么才能获得我想要的结果,还是需要完全不同的方法?
感谢您的帮助。
我的代码:
// create the HttpWebRequest object
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");
// get the response object which has the header info, using the GetResponse method
var objResults = objRequest.GetResponse();
// get the header count
int intCount = objResults.Headers.Count;
// loop through the results object
for (int i = 0; i < intCount; i++)
{
string strKey = objResults.Headers.GetKey(i);
string strValue = objResults.Headers.Get(i);
lblResults.Text += strKey + "<br />" + strValue + "</br /><br />";
}
我的结果:
缓存控制专用,最大年龄 = 0
内容类型文本/网页;字符集=ISO-8859-1
日期周二, 05 六月 2012 17:40:38 GMT
到期-1
设置饼干PREF=ID=526197b0260fd361:FF=0:TM=1338918038:LM=1338918038:S=gefqgwkuzuPJlO3G;过期=星期四, 05-六月-2014 17:40:38 GMT;路径=/;domain=.google.com,NID=60=CJbpzMe6uTKf58ty7rysqUFTW6GnsQHZ-Uat_cFf1AuayffFtJoFQSIwT5oSQKqQp5PSIYoYtBf_8oSGh_Xsk1YtE7Z834Qwn0A4Sw3ruVCA9v3f_UDYH4b4fAloFJbW;到期=星期三, 05-十二月-2012 17:40:38 GMT;路径=/;域=.谷歌.com;仅 httponly
P3PCP="这不是 P3P 策略!有关详细信息,请参阅 http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657。
服务器GWS
X-XSS 保护1;模式=块
X 框架选项同源
传输编码分块
============================提琴手成绩:
结果协议 主机 URL 正文缓存 内容类型 进程注释 自定义
1 304 HTTP www.rolandgarros.com/images/misc/weather/P8.gif 0 max-age=700 到期: 星期二, 05 六月 2012 17:53:40 GMT 图片/gif 火狐:5456
2 200 HTTP www.google.com/23,697 私有,max-age=0 过期:-1 文本/html;字符集=UTF-8 铬:2324
3 304 HTTP www.rolandgarros.com/images/misc/weather/P9.gif 0 max-age=700 到期: 星期二, 05 六月 2012 17:53:57 GMT 图像/gif 火狐:5456
4 200 HTTP 隧道到 translate.googleapis.com:443 0 铬:2324
5 200 HTTP www.google.com
不同之处在于Fiddler实际上记录了整个会话,而不仅仅是单个HTTP请求。
如果用户加载 Google.com,则响应通常是包含图像,脚本文件,CSS文件等的HTML文档。 然后,您的浏览器将为这些资源中的每一个发起新的 HTTP 请求。 在 Fiddler 运行时,它会跟踪每个 HTTP 请求,并吐出结果代码和有关会话的其他信息。
使用上面的 C# 代码,你只启动一个 HTTP 请求,因此你只有关于单个结果的信息。
你最好写一个浏览器插件。 否则,您还必须解析 HTML 响应并从该文档加载其他资源。
如果确实需要使用 C# 代码执行此操作,则可以使用 HTML 敏捷包分析文档,然后在 HTML 中查找其他资源来模拟浏览器。 还有嵌入式浏览器,如Awesomium,可能会有所帮助。
您没有要求与Fiddler显示的相同信息。 Fiddler 显示 HTTP 状态代码、主机和 URI,以及(从您的示例中显示)内容长度、内容类型和缓存状态。
对于其中的许多,您必须查看响应标头。