.net core 跨接口傳入一個json對象


平時寫api接口的時候,通常都是直接傳入單一的參數,很少傳入一個對象。今天做跨接口傳入一個json的對象的時候才發現以前的傳入方式好像不行了。拋出遠程調用接口異常。

   常用的跨接口傳入方式是:

    

 string Url = " http://要調用接口的ip/Api/App/Ex_JZ_jiZhan?Data=" +參數;
 string strJson = new DownloadHelper().LoadData(Url);

public string LoadData(string url)
{
//創建請求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

//GET請求
request.Method = "GET";
request.ReadWriteTimeout = 5000;
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
//返回內容
string retString = myStreamReader.ReadToEnd();
return retString;
}

上面的方式已經傳入不了一個json對象了,我百度了一下,在修修改改,最終搞定了。

遠程調用api接口的客戶端代碼:

  string url = "http://124.160.103.218:1111/Api/App/Ex_JZ_jiZhan";

                    string jsonContent = JsonConvert.SerializeObject(json字符);

                    using (var client = new HttpClient())
                    {
                        var Data = new StringContent(jsonContent, Encoding.UTF8, "application/json");
                        //client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer");
                        string result = client.PostAsync(url, Data).Result.Content.ReadAsStringAsync().Result;
                    }

api接口:

 /// <summary>
        /// 站點異常消息推送
        /// </summary>
        /// <param name="Data">json字符串</param>
        /// <returns></returns>
        [HttpPost("Ex_JZ_jiZhan")]
        public string Ex_JZ_jiZhan([FromBody] object Data)
        {
           var json=Data//接到json對象
//下面根據實際情況自己處理。
}

注意:

1,var Data = new StringContent(jsonContent, Encoding.UTF8, "application/json")中ContentType=“application/json”
2,客戶端傳入的參數Data要和api接口參數Data名字要一樣。
3,接口方法中的參數一定要加上 [FromBody]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM