[英]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.