C# 网络Http请求 Get与Post


提示:以下是本篇文章正文内容,下面案例可供参考

1.引入库

代码如下(示例):

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;

Get请求

代码如下(示例):

/// <summary>
/// Http Get方法
/// </summary>
/// <param name="HttpUrl">请求地址</param>
async void GetRequest(string HttpUrl)
{

       try
       {
           //用于发送Http请求和来接受通过URI确认的资源的HttP响应	
           using (HttpClient client = new HttpClient())
           {
                //创建HttpResponseMessage 接收  表示Http响应信息,包括状态代码、和数据
                 using (HttpResponseMessage response = await client.GetAsync(HttpUrl))
                 {
                    //创建content对象接收返回数据
                     using (HttpContent content = response.Content)
                     {
                          //请求头
                          HttpContentHeaders herders = content.Headers;
                          //声明字符串接收HttpContent里面的内容
                          string mycontent = await content.ReadAsStringAsync();

                          //转成JSON
                          JObject jsondata = (JObject)JsonConvert.DeserializeObject(mycontent);

                            //jsondata["status"] 获取其下的字段
                            //JObject jsondata2 = (JObject)JsonConvert.DeserializeObject(jsondata["status"]);

                      }

                   }

                }

        }
        catch (Exception ex)
        {
            Console.WriteLine("error:" + ex.Message);
        }

}

Post请求

代码如下(示例):

 /// <summary>
/// Http Post方法
/// </summary>
/// <param name="HttpUrl"></param>
async void PostRequest(string HttpUrl)
{
           
       try
       {
                //用于发送Http请求和来接受通过URI确认的资源的HttP响应	
                using (HttpClient client = new HttpClient())
                {
                    //动态获取请求头
                    // IEnumerable<KeyValuePair<string, string>> queries = list;
                    //默认请求头
                    IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>() {
                    new KeyValuePair<string, string>("name1","value1"),
                    new KeyValuePair<string, string>("name2","value2")
                    };

                    HttpContent contentKV = new FormUrlEncodedContent(queries);

                    using (HttpResponseMessage response = await client.PostAsync(HttpUrl, contentKV))
                    {
                        using (HttpContent content = response.Content)
                        {

                            string mycontent = await content.ReadAsStringAsync();
                            JObject jsondata = (JObject)JsonConvert.DeserializeObject(mycontent);                      
                            //转换为list集合类型
                            //List<StatusItem> list1 = JsonConvert.DeserializeObject<List<StatusItem>>(jsondata["data"].ToString());

                        }

                    }
                }
              
            }
       catch (Exception ex)
       {
           Console.WriteLine("error:" + ex.Message);
       }

}

动态获取请求头

代码如下(示例):

//动态添加请求值
        private List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
        public void AddHeaders(string Key1, string values1)
        {
            KeyValuePair<string, string> keyValuePair = new KeyValuePair<string, string>(Key1, values1);
            list.Add(keyValuePair);
        }

总结

提示:
类型转换时要注意,看JSON中是object还是集合,使用对应的方法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙筱北

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值