在winform里建立http链接和反序列化解析数据

本文介绍在WinForm应用中如何通过HTTP请求获取外部API数据,并使用JSON反序列化技术将数据填充到应用程序模型中进行展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在winform中,如果要获取别人的开放的api或者是访问外部网路数据,都需要建立http链接,然后通过post/get方法来获取数据,然后反序列化,将获取的数据赋值到已建立好的model里来,从而在窗口来展示;

 

      /// <summary>
        /// 建立http链接方法
        /// </summary>
        /// <param name="apiUrl">通过输入框或者是默认的链接地址</param>
        public string SetHttpLink(string apiUrl )
        {
            HttpWebRequest request;
            request = (HttpWebRequest)WebRequest.Create(apiUrl);
            HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();  //get方法
            System.IO.StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.UTF8);
            string reponseTxt = reader.ReadToEnd();
            reader.Close();
            return reponseTxt;
        }

反序列化:反序列化有三种方法,引用https://www.cnblogs.com/caofangsheng/p/5687994.html的介绍

   /// <summary>
        /// 按照歌名搜索按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripButton7_Click(object sender, EventArgs e)
        {                             
            string ReacherMusicListHttp;
            
        string textboxurl;
            textboxurl = toolStripButton6.Text;
            if (string.IsNullOrEmpty(textboxurl))
            {
                MessageBox.Show("请输入歌曲名字!");
            }
            else
            {
                string pinjiezifu = string.Format("?format=json&method=baidu.ting.search.catalogSug&query={0}", textboxurl);
                ReacherMusicListHttp = string.Format("http://tingapi.ting.baidu.com/v1/restserver/ting" + pinjiezifu);
                string result= SetHttpLink(ReacherMusicListHttp);
                SelectSongListModel descJsonStu = JsonConvert.DeserializeObject<SelectSongListModel>(result);//反序列化
                //string messate = string.Format("反序列化: ID={0},Name={1}", descJsonStu.song, descJsonStu.order);               
                List<SelectSongMoel> list = descJsonStu.song.ToList();   //这里还需要加个空值判断
                foreach (var onesong in list)
                {
                    listBox1.Items.Add(onesong.songName + " _ " + onesong.artistname) ;
                    selectsongNamelist.Add(onesong.songName+" _ "+onesong.artistname);          
                    selectsongIdlist.Add(onesong.songid);        
                }                    
                
            }               
        }

  

 

转载于:https://www.cnblogs.com/xiaojia-net/p/7941609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值