ASP.NET使用c#捕获响应数据

时间:2011-12-07 20:28:38

标签: c# response

我正在调用第三方对象并将参数传递给调用

  

e.g。 http://www.scripts/report.asp?companyname=Google

目前,在完成通话后,它会提示打开或下载.txt文件。

我的问题是,如何将响应数据捕获到某个内存对象(xml)而不显示提示保存/下载文件,我需要修改即将发布的数据然后打开文件。

如果您知道,请提供示例代码。

THX

1 个答案:

答案 0 :(得分:1)

使用WebRequest创建HTTP请求,然后获取流,然后根据流的内容对流执行某些操作。许多人使用HtmlAgilityPack,如果它是你正在抓取的HTML。相反,如果您从Feed中获取XML,则可以deserialize the XML into an object model。为此,您必须创建自定义类数据类型并告诉编译器如何(反)序列化您的类型(阅读MSDN)。

using System;
using System.IO;
using System.Web;
using System.Net;

public class Test
{
    static void Main()
    {
        WebRequest request = WebRequest.Create(
            "http://www.scripts/report.asp?companyname=Google");

        try
        {
            using (WebResponse response = request.GetResponse())
            {
                Stream recvStream = response.GetResponseStream();
                StreamReader sr = new StreamReader(recvStream , Encoding.UTF8);
                XmlReader reader = XmlReader.Create(sr);

                // Do the stuff mentioned in the MSDN article here
                // ...
            }
        }
        catch (WebException e)
        {
            using (WebResponse response = e.Response)
            {
                HttpWebResponse httpResponse = (HttpWebResponse) response;
                Console.WriteLine("Error code: {0}", httpResponse.StatusCode);
            }
        }
    }
}