http Client请求

桌面创建三个按钮分别是"Get请求","Font传递数据字符串拼接","Fost传递数据json个数",创建一个展示的控件

//URi:是URL的唯一标识的字符串 例如人的身份证
//URL:http;//127.0.0.1:3000

//Get请求
private async void button1_Click(object sender, EventArgs e)

{   
    //简单的写法
    1 获取响应消息
    //HttpResponseMessage res = await new HttpClient().GetAsync("http://192.168.113.74:3000/tianQi");
    2 获取字符串响应数据
    //string s = await res.Content.ReadAsStringAsync();
    //this.richTextBox1.Text = s;

    // 严格的写法
    try
    {
        // 发天气预报的接口
        //1 创建httpClient对象,用来发起请求的 ;  Client客户端
        HttpClient client = new HttpClient();
        //2 发起请求
        //GetAsync 发起get请求,并且是一个异步的,返回值是task任务。
        //HttpResponseMessage:响应消息
        ///login?name=&psw=
        HttpResponseMessage res = await client.GetAsync("http://192.168.113.74:3000/tianQi");

        //3 通过调用 EnsureSuccessStatusCode() 查看请求是否成功
        //如果请求状态码在200-299之外就是请求失败,调用.EnsureSuccessStatusCode();方法就会
        //报异常
        //该句目的是为了请求错误错误报异常
        res.EnsureSuccessStatusCode();

        // 4 取出响应数据  res.Content响应数据内容
        //Read(读取) As(作为) String(字符串) Async(异步):作为一个字符传异步读取
        string data = await res.Content.ReadAsStringAsync();
        this.richTextBox1.Text = data;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

//post字符串

private async void button2_Click(object sender, EventArgs e)
{
    
    //PostAsync 发送post请求,参数1是url, 参数2 是通过FormUrlEncodedContent对象传递数据
    //1 创建客户端对象发送post异步请求,返回值是响应数据
    HttpResponseMessage res = await new HttpClient().PostAsync(
        "http://192.168.113.74:3000/register",
        //第一中传递数据方式
        //FormUrlEncodedContent() 使用form表单编码的方式对请求内容进行编码(把请求内容转成字符串拼接的方式)
        //把字典里面数据转成 "name=吞吞吐吐&psw=123456"这种格式  编码格式 "application/x-www-form-urlencoded"
        //new FormUrlEncodedContent(new Dictionary<string, string>
        //{
        //    {"name","吞吞吐吐123"},
        //    {"psw","123456"}
        //}) 
        
        // 第二种数据传递的方式
        new StringContent("name=是啥发的&psw=123456",Encoding.UTF8, "application/x-www-form-urlencoded" )
        
        );

   //2 获取字符串数据
    string data = await res.Content.ReadAsStringAsync();
    this.richTextBox1.Text = data;   
}

//postjson格式
private async void button3_Click(object sender, EventArgs e)
{
    HttpResponseMessage res = await new HttpClient().PostAsync(
        "http://192.168.113.74:3000/register",
        //第一种方式
        // new StringContent 参数1是json字符串, 参数2 是utf8编码 参数3请求内容编码格式
        new StringContent("{ \"name\":\"DNF平分1.1\",\"psw\":\"123456\" }", Encoding.UTF8, "application/json")

        //第二种方式
        //JsonContent

        );

    string data = await res.Content.ReadAsStringAsync();
    this.richTextBox1.Text = data;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值