C# 后台POST數據及API接收簡記


    背景:項目對接各種卡殼,本地測試處理效果,暫記。

    開發環境:VS 2019 16.4 +NetCore 3.1.1+CoreMVC

    接口為WebApi(Core)

    一、后台請求第三方接口(模擬)

   

       //參數序列化后直接寫入
     public string Posts(string postData, string url) { try { System.Net.ServicePointManager.DefaultConnectionLimit = 50; var postRequest = HttpWebRequest.Create(url) as HttpWebRequest; postRequest.KeepAlive = false; postRequest.Timeout = 5000; postRequest.Method = "POST"; postRequest.ContentType = "application/json;"; postRequest.ContentLength = postData.Length; postRequest.AllowWriteStreamBuffering = false; StreamWriter writer = new StreamWriter(postRequest.GetRequestStream(), Encoding.ASCII); writer.Write(postData); writer.Flush(); HttpWebResponse response = postRequest.GetResponse() as HttpWebResponse; Stream responseStream = response.GetResponseStream(); using (System.IO.StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"))) { string jsonStr = reader.ReadToEnd(); return jsonStr; } } catch (Exception ex) { _logger.LogInformation("post Error!=" + ex); } return ""; }     /// <summary> /// 內容轉換為流寫入post /// </summary> /// <param name="url"></param> /// <param name="param"></param> /// <param name="dicHeider"></param> /// <returns></returns> public static string PostMoths(string url, string param, Dictionary<string, string> dicHeider = null) { Encoding encod = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "text/html,application/xhtml+xml,*/*"; request.ContentType = "application/json"; if (dicHeider != null) { foreach (KeyValuePair<string, string> item in dicHeider) { request.Headers.Add(item.Key, item.Value); } } byte[] buffer = encod.GetBytes(param); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length);
using StreamReader reader = new StreamReader(((HttpWebResponse)request.GetResponse()).GetResponseStream(), Encoding.UTF8); return reader.ReadToEnd(); }

  二、接收方:#測試接收    

 [HttpPost]
        [Route("GetAJWSWJ")]
        public async Task GetAJWSWJ(dynamic jsondata)
        {
         try
                {
                    var param = JsonConvert.DeserializeObject<JObject>(jsondata.ToString());
                    var strParam = param["wsslbh"].ToString();
                    _logger.LogInformation($"接收參數解析!strParam={strParam}");
                    var paramsStr = new { wsslbh = strParam };
                    _logger.LogInformation($"傳遞參數!strParam={paramsStr}");
                    //var valssss = this.Posts(JsonConvert.SerializeObject(paramsStr), text3);
                    var valssss = this.PostMoths(text3, JsonConvert.SerializeObject(paramsStr));
                    await BodyReturn(JsonConvert.SerializeObject(valssss));
                }
                catch (Exception ex)
                {
                    _logger.LogInformation($"PostMoths Error!" + ex.Message);
                    await BodyReturn(ex.Message);
                }
     }

 


免責聲明!

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



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