繁体   English   中英

C#API调用不适用于HttpWebRequest,但可以与Postman一起使用

[英]C# API Call doesn't work with HttpWebRequest but do work with Postman

我有以下邮递员要求: 在此输入图像描述 在此输入图像描述

这会使我返回预期的URL: 在此输入图像描述

我试图用.Net Core 2.0应用程序模仿这个操作,代码如下:

static void Main(string[] args)
{
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

    var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://epaper.20minuten.ch/index.cfm/epaper/1.0/getEditionDoc");
    httpWebRequest.ContentType = "application/json";
    httpWebRequest.Method = "POST";

    var serializer = new Newtonsoft.Json.JsonSerializer();
    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
    {
        using (var tw = new Newtonsoft.Json.JsonTextWriter(streamWriter))
        {
            serializer.Serialize(tw,
                new
                {
                    editions = new[]
                    {
                            new
                            {
                                defId = "648",
                                publicationDate = "2018-03-06"
                            }
                    },
                    isAttachment = true,
                    fileName = "Gesamtausgabe_Lausanne_2018-03-06.pdf"
                });
        }
    }
    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    {
        var responseText = streamReader.ReadToEnd();
        Console.ReadLine();
    }
}

但是我收到了500个错误。 我错过了什么?

邮差可以生成各种各样的代码。 要在C#中使用RestSharp,请单击代码按钮/链接,然后从下拉列表中选择C# (RestSharp)

它应该类似于:

在此输入图像描述

总有一天我会为HttpClient和HttpWebRequest贡献一个生成器

我想这个问题可能是因为您正在调用外部URL,可能会出现阻止这些爬行请求的情况。 尝试为请求设置useragent以模仿浏览器调用。

暂无
暂无

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

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