c#中HttpWebRequest调用接口获取数据PART  01-封装接口

将post请求进行封装,以便调用使用:

/// /// 请求后台地址/// 请求参数/// public string Post(string url,Dictionary<string, string> dic){        string result = "";    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);    req.Method = "POST";    req.ContentType = "application/x-www-form-urlencoded";    StringBuilder builder = new StringBuilder();    int i = 0;    foreach (var item in dic)    {        if (i > 0)            builder.Append("&");        builder.AppendFormat("{0}={1}", item.Key, item.Value);        i++;    }    byte[] data = Encoding.UTF8.GetBytes(builder.ToString());    req.ContentLength = data.Length;    using (Stream reqStream = req.GetRequestStream())    {        reqStream.Write(data, 0, data.Length);        reqStream.Close();    }    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();    Stream stream = resp.GetResponseStream();    //获取响应内容    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))    {        result = reader.ReadToEnd();    }    return result;}

PART  02-定义接收实体

请求接口返回的数据格式是string,为了获取到我们需要的格式,所以需要定义一个接收实体:

public class PicInfo{    public PicInfo() { }    public string ID { get; set; }    public int Iindex { get; set; }    public int IDID { get; set; } }

PART  03-数据处理

调用接口,将接收的返回值进行处理,拿到我们想要的有价值数据:

public IListEcho(){    //定义接收实体    IListlist = new List();    //定义参数    string url = ipAddress+"/test";    Dictionary dic = new Dictionary(); //参数列表    dic.Add("lons", "1");    dic.Add("lonb", "2");    //调用方法    string str = Post( url,dic);    //处理数据    Newtonsoft.Json.Linq.JObject json1 = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(str);    if (json1 != null)    {        if (json1["data"].ToString() != "")        {            if (json1["data"].ToString() == "0000")            {                ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;                scriptManager.RegisterStartupScript(typeof(string), "", "alert(网络超时PcFjGet');", true);            }            else            {                Newtonsoft.Json.Linq.JArray array = (Newtonsoft.Json.Linq.JArray)json1["data"];                int i = array.Count;                for (int j = 0; j < i; j++)                {                    Newtonsoft.Json.Linq.JObject json2 = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(array[j].ToString());                    PicInfo info = new PicInfo();                    if (json2.Property("ID") != null)                    {                        info.ID = array[j]["ID"].ToString();                    }                    if (json2.Property("Iindex") != null)                    {                        info.Iindex = Convert.ToInt32(array[j]["Iindex"].ToString());                    }                     if (json2.Property("IDID") != null)                    {                        info.IDID = Convert.ToInt32(array[j]["IDID"].ToString());                    }                    list.Add(info);                }            }        }   }   return list;}

PART  04-总结

由于是第一次试用c#调用后台接口,过程中你遇到了些问题,其中由于Newtonsoft.Json版本不同的问题耽误了些时间,如果在运行过程中出现Newtonsoft问题,可以考虑更换版本方法。

vue获取接口数据_c#中HttpWebRequest调用接口获取数据相关推荐

  1. Vue移动端框架Mint UI教程-调用模拟json数据(五)

    1:安装 npm install vue-resource 2:打开main.js 注册 import VueResource from 'vue-resource' Vue.use(VueResou ...

  2. python pc微信 接收信息_GitHub - ericadver/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  3. vue如何在style标签中使用data响应式数据?

    文章目录 一.面临到的需求? 二.如何在css中使用变量? 三.vue如何在style标签中使用data响应式数据? 一.面临到的需求? 首先我们知道css对应是有伪类的,如:hover, :acti ...

  4. python 微信公众号网页接口调用_GitHub - micsem00/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  5. python的读取微信界面_GitHub - lchb000/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息,接受转账.好友请求.入群请求,群管理等功能.可用于二次开发在线微信机器人.微信消息监控. ...

  6. python 接收微信pc端_GitHub - linhuisheng/WechatPCAPI: 微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息等功能。...

    WechatPCAPI 微信PC版的API接口,可通过Python调用微信获取好友.群.公众号列表,并收发消息等功能.可用于二次开发在线微信机器人.微信消息监控.群控软件.开发界面作多个微信控制软件等 ...

  7. 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?

    前提这个table有一个日期字段date_time之类的 1.根据数据表中日期字段查询某个月每一天的数据量 如果要获取8月的数据,可以这么写: SELECT count(*), DATE_FORMAT ...

  8. 同时删除两张表的数据_把数据表中对应工作表的数据首先删除,然后导入数据...

    大家好,我们今日继续讲解VBA数据库解决方案的第28讲内容:利用VBA,把数据表中对应工作表的数据首先删除,然后向数据表中导入工作表数据.数据库的讲解已经持续一段时间了,从对简单数据库的认识到利用VB ...

  9. php 根据一个数据组的id 取得另一个数据组对应的名称,怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件...

    求教高手怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件.谢谢.排序后用merge file操作,怎么原数据没有变化?output中提示这些 Renaming has created ...

最新文章

  1. HBase存储剖析与数据迁移
  2. python画五角星填充不同颜色_Python绘制分形树(一)
  3. 多数据源使用spring-data-jpa无法部署到JBoss As Server
  4. 【ArcGIS遇上Python】三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例
  5. linux多线程 pthread用法
  6. 做10多年测试的老何
  7. jeecg json返回值显示失败or成功 j.setSuccess(false/*true*/)
  8. opencv前景检测
  9. 严蔚敏版数据结构视频讲解
  10. cookie secure
  11. 磨刀不误砍柴工——实验工具准备
  12. 除了 Microsoft Office我们还可以选择哪些软件?
  13. 【HTML5期末大作业】制作一个简单HTML我的公益校园安全网页(HTML+CSS+JS)
  14. HDS发布视频分析软件HVA 为企业提供运营智能与安全洞察
  15. OriginPro8.5画双柱状图
  16. 正态性检验ks和sw区别_t检验常见问题汇总解答,你想知道的都在这里
  17. 王者荣耀国际服——传说对决
  18. 无法启动程序计算机丢失d,老毛桃处理win10系统提示无法启动程序计算机中丢失duilib_d.dll的恢复方法...
  19. 知识分享-博客公众号推荐
  20. Jupyter Notebook主题字体设置及自动代码补全

热门文章

  1. Python笔记4 实例之批量修改文件名
  2. 如何防止在ListBox中添加很多数据出现不停的刷新?
  3. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 07课
  4. linux系统下装windows双系统,LINUX下安装WINDOWS双系统
  5. 心理正常与异常的区分_正常心理与异常心理的区分
  6. Mac上IDA报错/:Permission denied Please specify another file path for the database
  7. 单链表头插法和尾插法
  8. Android4.4 多媒体开发(五)----OpenMax简介
  9. Mac上Gtk-WARNING **: cannot open display解决
  10. Android启动的init进程