这里需要调用别人接口,并且传值为多重json格式数据
[HttpPost]
[Route("GetData")]
public JsonResult<Data> GetData(CommInfoInput input)
{
Data rtd = new Data();
try
{
//获取accesstoken的接口url
string url = "接口url";
int res;
var devnum = "自己从数据库中查询出的数据字段值";
string postData = "{\"api\": \"da.realData.query\",\"ver\": \"1.0\",\"key\": \"wwwww\",\"params\": \"{\\\"devnum\\\": \\\""+ devnum + "\\\"}\"}";//这里是把json转换成字符串形式
//调用接口,发送数据
string returnData = GetResponseData(postData,url );
JObject joResult = (JObject)JsonConvert.DeserializeObject(returnData);
if (joResult.GetString("errcode") == "00")
{
rtd.errcode = 0;
rtd.errmsg = "操作成功";
rtd.result = joResult;
}
else
{
rtd.errcode = 1;
rtd.errmsg = "操作失败!";
//rtd.result = joResult;
}
}
catch (Exception ex)
{
rtd.errcode = 1;
rtd.errmsg = ex.Message.ToString();
}
return Json(rtd);
}
//处理调用接口的方法
public string GetResponseData(string JSONData, string url)
{
byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "application/json;charset=UTF-8";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, 0, bytes.Length);
//声明一个HttpWebRequest请求
//request.Timeout = 60000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose();
Console.WriteLine(strResult);
return strResult;
}
如果报500内部错误:说明传值的字段和接口需要的字段不匹配