httpwebresponse не работает - PullRequest
       8

httpwebresponse не работает

0 голосов
/ 13 октября 2010

Я пытаюсь программно найти элемент на указанном веб-сайте.

Следующее не работает для меня. Ответ - это страница с ошибкой, а не страница с результатами поиска.

Пожалуйста, помогите.

        string sUrl = "http://www.arrownac.com/";
        string sUrl1 = "http://app.arrownac.com/aws/pg_webc?s=P";

        HttpWebRequest owebreq = (HttpWebRequest)WebRequest.Create(sUrl1);
        owebreq.Referer = sUrl;          

        ASCIIEncoding encoding = new ASCIIEncoding();

        string postdata = "search_token=" + "743C083102JPTR";
        byte[] data = encoding.GetBytes(postdata);

        owebreq.ContentType = "text/html";
            //"application/x-www-form-urlencoded";

        owebreq.Method = "POST";
        owebreq.ContentLength = data.Length;
        Stream newStream = owebreq.GetRequestStream();
        newStream.Write(data, 0, data.Length);
        newStream.Close();        

        HttpWebResponse owebresp = (HttpWebResponse)owebreq.GetResponse();
        string sResult = string.Empty;
        using (StreamReader sr = new StreamReader(owebresp.GetResponseStream()))
        {
            sResult = sr.ReadToEnd();
            sr.Close();
        }

Ответы [ 2 ]

0 голосов
/ 14 октября 2010

Зачем писать так много кода, когда это может быть просто:

class Program
{
    static void Main()
    {
        using (var client = new WebClient())
        {
            var referer = "http://www.arrownac.com/";
            client.Headers[HttpRequestHeader.Referer] = referer;                
            var valuesToPost = new NameValueCollection
            {
                { "search_token", "743C083102JPTR" },
            };
            var url = "http://app.arrownac.com/aws/pg_webc?s=P";
            var result = client.UploadValues(url, valuesToPost);
            var resultString = Encoding.Default.GetString(result);
            Console.WriteLine(resultString);
        }
    }
}
0 голосов
/ 14 октября 2010

Вы, вероятно, не отправляете запрос точно , как этого ожидает веб-сайт. Я бы сделал следующее:

1) use firefox.
2) install firebug plugin
3) use firefox to execute your scenario.
4) Look at the actual requests sent from firefox (use the firebug plugin for that)
5) Now, duplicate the exact same requests, down to the user-agent,cookies and request headers in code.
6) profit?
...