C# 调接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 调接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1797字,纯文字阅读大概需要3分钟。
内容图文
上一个项目,需要mvc管理后台调接口项目,以便后期的重构扩展,调研后发现后台用的ajax请求,直接调接口可能会有跨域问题,最终在c#代码中实现了这个需求。
1,Ajax请求后台 将接口所需参数传入
2,模拟请求接口并返回json格式数据
3,将json数据反序列化
整体代码如下:
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 List<string>() { 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<TestViewModel.RootObject>(retString);
其中 1. SignsValue 和 TimeStamp 等请求头信息需要通过接口的具体规则来实现
2.在反序列化的时候需要定义类来将接受到的json格式数据转化为model 即:JsonConvert.DeserializeObject<TestViewModel.RootObject>(retString);
定义 RootObject 类:
public class RootObject { public string Msg { get; set; } publicstring Message { get; set; } publicstring ResultCode { get; set; } public Info Info { get; set; } }
Info 中的数据接口要跟接口的数据结构一致。
GetTestData
原文:https://www.cnblogs.com/teng-0802/p/10337358.html
内容总结
以上是互联网集市为您收集整理的C# 调接口全部内容,希望文章能够帮你解决C# 调接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。