簡體   English   中英

發布請求未收到任何數據

[英]Post Request not receiving any Data

我正在嘗試從 Unity 發出 PostRequest,以在數據庫中創建一個新帳戶。 當我運行 Post Request 功能(單擊提交按鈕)時,會在數據庫中創建一個新帳戶,但所有值都為空。 我無法在控制器上獲取任何數據。 我將數據作為 Json 格式的字符串發送。 任何幫助表示贊賞。

控制器:

    [HttpPost]
    public string Post([FromForm] Account data )
    {
        Console.WriteLine("Data user name: " +data.userName);
        db.Accounts.Add(data);
        db.SaveChanges();
        Console.WriteLine(data);
        return "success";
    }

來自 Unity 的 PostRequest

    public void AddAccount()
    {

    WebRequest request = (HttpWebRequest)WebRequest.Create("https://localhost:44301/accounts" );
    request.Method = "POST";

    string json = " { \"highScores\":[],\"lazyLoader\":{},\"userName\":user\",\"password\":testpassword",\"displayName\":name"} ";
    byte[] byteArray = Encoding.UTF8.GetBytes(json);

    request.ContentType = "application/json; charset=UTF-8";

    request.ContentLength = byteArray.Length;

    Stream dataStream = request.GetRequestStream();

    dataStream.Write(byteArray, 0, byteArray.Length);

    dataStream.Close();

    WebResponse response = request.GetResponse();

    Debug.Log(((HttpWebResponse)response).StatusDescription);

    using (dataStream = response.GetResponseStream())
    {
        StreamReader reader = new StreamReader(dataStream);

        string responseFromServer = reader.ReadToEnd();

        Debug.Log(responseFromServer);
    }

}

您正在發送類型為application/json內容正文。 表單數據通過x-www-form-urlencoded 您需要在控制器操作[FromBody]參數綁定器[FromForm]更改為[FromBody]

其次, " { \\"highScores\\":[],\\"lazyLoader\\":{},\\"userName\\":user\\",\\"password\\":null,\\"displayName\\":null} "是不是有效的 Json。當您更改為FromBody綁定程序時,反序列化器將拋出序列化異常。您還需要修復 json 數據。

暫無
暫無

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

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