ASP.NET захвата данных ответа с помощью c # - PullRequest
0 голосов
/ 08 декабря 2011

Я звоню стороннему объекту и передаю параметры в вызов

например. http://www.scripts/report.asp?companyname=Google

В настоящее время после завершения вызова предлагается открыть или загрузить файл .txt.

Мой вопрос, как мне записать данные ответа в какой-либо объект памяти (xml) и чтобы не показывать файл с приглашением сохранить / скачать, мне нужно изменить поступающие данные и затем открыть файл.

Пожалуйста, предоставьте пример кода, если вы знаете.

Thx

1 Ответ

1 голос
/ 08 декабря 2011

Используйте WebRequest для создания HTTP-запроса, затем получите поток и затем что-то сделайте с потоком на основе его содержимого. Многие люди используют HtmlAgilityPack, если вы захватываете HTML. Если вместо этого вы извлекаете XML из канала, вы можете десериализовать XML в объектную модель . Для этого вы должны создать свой собственный тип данных класса и сообщить компилятору, как (де) сериализовать ваш тип (прочитайте 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);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...