// 被呼叫介面,接收和決議JSON引數
public ActionResult ParseJson(string RZSJ, string LDSJ, List<Dictionary<string, string>> param)
{
//處理param,我在這里接收不到param的值,顯示為空,用List或string都不行
return Content("RZSJ:" + RZSJ + ",LDSJ:" + LDSJ);
}
//用Http Post模擬呼叫介面
public ActionResult TestPostJson2()
{
//JSON格式入參
string param = "{\"param\":{\"FXBM\":[{\"FXBM\":\"GK\"},{\"FXBM\":\"FK\"},{\"FXBM\":\"HK\"}],\"FTBM\":[{\"FTBM\":\"VC\"},{\"FTBM\":\"VI\"},{\"FTBM\":\"VD\"}]},\"RZSJ\":\"2019-10-30\",\"LDSJ\":\"2019-10-31\"}";
string result = Post("http://localhost:19992/PMS/ParseJson", param);
return Content("result:" + result);
}
public string Post(string Url, string jsonParas)
{
string strURL = Url;
//創建一個HTTP請求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
//Post請求方式
request.Method = "POST";
//內容型別
request.ContentType = "application/json";
//設定引數,并進行URL編碼
string paraUrlCoded = jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas);
byte[] payload;
//將Json字串轉化為位元組
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
//設定請求的ContentLength
request.ContentLength = payload.Length;
//發送請求,獲得請求流
Stream writer;
try
{
writer = request.GetRequestStream();//獲取用于寫入請求資料的Stream物件
}
catch (Exception)
{
writer = null;
Console.Write("連接服務器失敗!");
}
//將請求引數寫入流
writer.Write(payload, 0, payload.Length);
writer.Close();//關閉請求流
// String strValue = "";//strValue為http回應所回傳的字符流
HttpWebResponse response;
try
{
//獲得回應流
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse;
}
Stream s = response.GetResponseStream();
// Stream postData = Request.InputStream;
StreamReader sRead = new StreamReader(s);
string postContent = sRead.ReadToEnd();
sRead.Close();
return postContent;//回傳Json資料
}
uj5u.com熱心網友回復:
https://www.cnblogs.com/Sea1ee/p/10438838.htmluj5u.com熱心網友回復:
自己寫一個類來當方法引數uj5u.com熱心網友回復:
改成 ParseJson() request.form["param"] 要是不能取到值就是傳參的問題。。。uj5u.com熱心網友回復:
string result = Post("http://localhost:19992/PMS/ParseJson", param);這個post的方法里,你把param的引數名改為json,那你的json=param。
在PMS/ParseJson,這個Controller的方法如下,請參考使用:
[HttpPost]
public ActionResult ParseJson(string json)
{
dynamic model = Newtonsoft.Json.Linq.JToken.Parse(json) as dynamic;//決議
string v = model.LDSJ;//直接取值LDSJ
return View();
}
uj5u.com熱心網友回復:
因為你POST的只是個字串轉載請註明出處,本文鏈接:https://www.uj5u.com/net/100715.html
標籤:ASP.NET
