桌面创建三个按钮分别是"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;
}