1.获取 post 请求 body 内容
[HttpPost]
public string GetId()
{
//如果方法参数里面有 [FromBody],则需要重新调整内容指针,再进行读取。
//Request.Content.ReadAsStreamAsync().Result.Seek(0,System.IO.SeekOrigin.Begin);
string content = Request.Content.ReadAsStringAsync().Result;
return content;
}
| 方法名称 |
描述 |
| GetAsync |
发送一个GET请求到指定的Uri,异步操作。 |
| GetByteArrayAsync |
向指定的Uri发送一个GET请求,并将返回响应的数据作为一个字节数组,异步操作。 |
| GetStreamAsync |
向指定的Uri发送一个GET请求,并返回响应的数据流,异步操作。 |
| GetStringAsync |
向指定的Uri发送一个GET请求,并将返回响应的数据转换为Sting,异步操作。 |
| PostAsync |
向指定的Uri发送一个POST请求,异步操作。 |
| PostAsJsonAsync |
向指定的Uri发送一个Post请求,返回数据格式为json,异步操作。 |
| PostAsXmlAsync |
向指定的Uri发送一个Post请求,返回数据格式为xml,异步操作。 |
| PutAsync |
向指定的Uri发送一个Put请求,异步操作。 |
| PutAsJsonAsync |
向指定的Uri发送一个Put请求,返回数据格式为json,异步操作。 |
| PutAsXmlAsync |
向指定的Uri发送一个Put请求,返回数据格式为xml,异步操作。 |
| DeleteAsync |
向指定的Uri发送一个Delete请求,异步操作。
|
private static void SendRequest()
{
using (var client = new System.Net.Http.HttpClient())
{
client.BaseAddress = new Uri("http://192.168.1.3:42561/");
var url = "apitest/order/pager";
//添加自定义头信息
client.DefaultRequestHeaders.Add("name", "wjire");
//设置头信息中的 Authorization
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("scheme", "Mima");
//PostAsJsonAsync 及上表中几个类似方法都需要引用nuget中的 Microsoft.AspNet.WebApi.Client
//Post方法一:用json格式传递参数
//client.PostAsJsonAsync(url, new Person { Name = "fffff", Id = 123, Age = 100 }).ContinueWith(GetResponse);;
//Post方法二:匿名类,原理同方法一
//var content = new
//{
// Name = "gg",
// Id = 1,
// Age = 1
//};
//client.PostAsJsonAsync(url, content).ContinueWith(GetResponse);;
//Post方法三: 原生的键值对形式传递参数
//var content = new FormUrlEncodedContent(new Dictionary<string, string>
// {
// {"id","1" },
// {"name","wjjj" },
// {"age","100" }
// });
//client.PostAsync(url, content).ContinueWith(GetResponse);;
//Get方式
//这里如果要传递参数,参数个数必须包含请求的API接口所接收的所有参数,只能多,不能少,否则无法传递.其实多了也没有意义
var task = client.GetAsync(url + "?age=100&id=121&name=go1ng").ContinueWith(GetResponse);
Console.ReadLine();
}
}
private static void GetResponse(Task<HttpResponseMessage> obj)
{
var getResult = obj.Result;
//判断请求是否成功
var isSuccess = getResult.IsSuccessStatusCode;
if (isSuccess)
{
//这里当然也可以转成自定义类
var readResult = getResult.Content.ReadAsAsync<dynamic>();
var model = readResult.Result;
Console.WriteLine(model.Age);
Console.WriteLine(model.Name);
Console.WriteLine(model.Id);
}
}