C# 调接口
2021-06-17 03:03
标签:定义 comm timeval font ddr sig service tst mod 上一个项目,需要mvc管理后台调接口项目,以便后期的重构扩展,调研后发现后台用的ajax请求,直接调接口可能会有跨域问题,最终在c#代码中实现了这个需求。 1,Ajax请求后台 将接口所需参数传入 2,模拟请求接口并返回json格式数据 3,将json数据反序列化 整体代码如下: 其中 1. SignsValue 和 TimeStamp 等请求头信息需要通过接口的具体规则来实现 2.在反序列化的时候需要定义类来将接受到的json格式数据转化为model 即:JsonConvert.DeserializeObject 定义 RootObject 类: Info 中的数据接口要跟接口的数据结构一致。 C# 调接口 标签:定义 comm timeval font ddr sig service tst mod 原文地址:https://www.cnblogs.com/teng-0802/p/10337358.html public ActionResult Test(int id, int type)
{
var domain = CommonConst.ApiDomain;
var fixedString = CommonConst.FixedString;
var thisTimeValue = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds).ToString();
var tempList = new Liststring>() { fixedString.ToLower(), thisTimeValue.ToLower(), "GetTestData".ToLower() };
tempList.Sort();
var valueSign = Encrypt.MD5(string.Join("", tempList));
valueSign = valueSign.ToLower().Replace("-", "");
string serviceAddress = domain + "/api/exam/GetTestData?id=" + id + "&type=" + type;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method = CommonConst.RequestMethod;
request.ContentType = CommonConst.ContentType;
request.Headers.Add("SignsValue", valueSign);
request.Headers.Add("TimeStamp", thisTimeValue.ToLower());
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
string retString = streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
var result = JsonConvert.DeserializeObject
public class RootObject
{
public string Msg { get; set; }
public string Message { get; set; }
public string ResultCode { get; set; }
public Info Info { get; set; }
}
GetTestData