簡體   English   中英

C#HttpWebResponse sendin null JSON字符串

[英]C# HttpWebResponse sendin null JSON string

這真讓我感到難過。 我有一個用於POST的Web API處理程序,如下所示:

    [HttpPost]
    public IActionResult Post([FromBody]string jsonString)
    {
        if (jsonString == null)
            return new ObjectResult("Bad JSON");

我的呼叫者看起來像這樣(從“ 如何將JSON發布到服務器?”借來的):

    public async void PostJson(string path, string payload)
    {
        string url = string.Format("{0}{1}", BaseAddress, path); // Not the issue, the URL is good...
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            streamWriter.Write(payload);
            streamWriter.Flush();
            streamWriter.Close();
        }

        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            var result = streamReader.ReadToEnd();
            Console.WriteLine(string.Format("Response: {0}", result.ToString()));
            Console.WriteLine("Press any key...");
            Console.ReadKey();
        }

這就是問題所在。 當我使用POSTMAN發布JSON字符串(在有效負載中提供)時,我的WebApi將獲得正確的JSON字符串。 但是,當我使用上面列出的代碼(以及研究過的其他許多方法)時,我在Web api中始終獲得jsonString的NULL值。

誰能對此有所啟示?

我在這里找到了答案: ASP.NET Core API POST參數始終為null

我必須承認,當我在當天早些時候第一次遇到它時,我並沒有考慮過這種方法,但是如果您已經窮盡了其他可能性,可以用夏洛克·福爾摩斯來解釋一下……

簡而言之,我將“內容”類型更改為text / plain,並向我的Web api Startup.cs文件中添加了格式化程序(如其他鏈接中所示),並且可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM