简体   繁体   English

为什么我无法通过HttpWebRequest获得请求?

[英]Why I can't get request with HttpWebRequest?

I'd like to get phone number from https://sprzedajemy.pl/doskonale-dla-pary-planujacej-poszerzenie-rodziny-sprawdz-warszawa-2-1b8e55-nr57347155 我想从https://sprzedajemy.pl/doskonale-dla-pary-planujacej-poszerzenie-rodziny-sprawdz-warszawa-2-1b8e55-nr57347155获取电话号码

Phone number is "protect" and I have to click "show number" to get request with phone. 电话号码是“保护”,我必须单击“显示号码”以获取电话请求。 Before I send request I have to get from source data-id="805c74a74f3ea9fe6db5da90d722" from button "show number" and send POST with this token as _rp_offerID. 在发送请求之前,我必须从“显示编号”按钮获取源data-id =“ 805c74a74f3ea9fe6db5da90d722”并发送带有此令牌的POST作为_rp_offerID。

Correct answer is: 正确答案是:

<span><strong><a href="tel:516000551"> 516 000 551</a></strong></span>

My answer is: 我的答案是:

?

My complete code: 我完整的代码:

HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create("https://sprzedajemy.pl/oferta-dane.telefon");
        getRequest.Method = "POST";
        getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36";
        getRequest.ContentType = "application/x-www-form-urlencoded";
        getRequest.Host = "sprzedajemy.pl";
        getRequest.Referer = url;
        getRequest.Headers.Add("accept-encoding", "gzip, deflate, br");
        getRequest.Headers.Add("accept-language", "pl,en-US;q=0.9,en;q=0.8,ru;q=0.7");
        getRequest.Headers.Add("origin", "https://sprzedajemy.pl");
        getRequest.Headers.Add("X-Requested-With", "XMLHttpRequest");

        var postData = "_rp_offerID=" + itemId;
        var data = Encoding.ASCII.GetBytes(postData);

        getRequest.ContentLength = data.Length;

        using (var stream = getRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }

        var httpResponseP = (HttpWebResponse)getRequest.GetResponse();
        var streamReaderP = new StreamReader(httpResponseP.GetResponseStream());
        string strPhone = streamReaderP.ReadToEnd();

        Console.WriteLine(strPhone);

I don't know what is wrong with my code... 我不知道我的代码有什么问题...

If I use REST client for Chrome with: 如果我将REST客户端用于Chrome,请执行以下操作:

POST https://sprzedajemy.pl/oferta-dane.telefon User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 Content-Type: application/x-www-form-urlencoded Referer: http://sprzedajemy.pl/doskonale-dla-pary-planujacej-poszerzenie-rodziny-sprawdz-warszawa-2-1b8e55-nr57347155 accept-encoding: gzip, deflate, br accept-language: pl,en-US;q=0.9,en;q=0.8,ru;q=0.7 origin: https://sprzedajemy.pl X-Requested-With: XMLHttpRequest Host: sprzedajemy.pl Content-Length: 48

Body Form Data: _rp_offerID=80e158b0281e04a2102fd7bce6eba0cd3833 主体形式数据: _rp_offerID=80e158b0281e04a2102fd7bce6eba0cd3833

Answer is correct 答案正确

Why don't you use HttpClient ? 为什么不使用HttpClient? it's much easier! 这要容易得多! check the example below: 检查以下示例:

using System;
using System.Net.Http;
using System.Text;

namespace httpClient
{
    class Program
    {

        static void Main(string[] args)
        {
            using (var client = new HttpClient() {BaseAddress = new Uri("https://sprzedajemy.pl")})
            {
                client.DefaultRequestHeaders.Add("accept-encoding", "gzip, deflate, br");
                client.DefaultRequestHeaders.Add("accept-language", "pl,en-US;q=0.9,en;q=0.8,ru;q=0.7");
                client.DefaultRequestHeaders.Add("origin", "https://sprzedajemy.pl");
                client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
                var postData = "_rp_offerID=80e158b0281e04a2102fd7bce6eba0cd3833";

                var stringContent = new StringContent(postData, Encoding.Default, "application/x-www-form-urlencoded");

                var result = client.PostAsync("oferta-dane.telefon", stringContent).GetAwaiter().GetResult();
            }
        }
    }
}

i`ve tested this code and the return was 200 我已经测试了这段代码,返回的是200

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM