62,046
社区成员
发帖
与我相关
我的任务
分享
public class BaseParameter
{
public int Property { get; set; }
}
public class Parameter : BaseParameter
{
public new Guid Property { get; set; }
}
public class TestController : ApiController
{
//发起请求
[HttpGet]
public async Task<string> Get()
{//调用请求方法
var q = await APIPost("http://localhost:16727/api/Test/Post","{'name':'Hello','age':17}");
//post api的返回数据
return q;
}
//被请求的post api
[HttpPost]
public string Post(User data)
{
return "123";
}
//传递对象
public class User
{
public string name{get;set;}
public int age{get;set;}
}
public static async Task<string> APIPost(string url, string data)
{
string result = string.Empty;
//设置HttpClientHandler的AutomaticDecompression
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
//创建HttpClient(注意传入HttpClientHandler)
using (var http = new HttpClient(handler))
{
//使用FormUrlEncodedContent做HttpContent
var content = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"", data}//键名必须为空
});
//await异步等待回应
var response = await http.PostAsync(url, content);
//确保HTTP成功状态值
response.EnsureSuccessStatusCode();
//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
result = await response.Content.ReadAsStringAsync();
}
return result;
}
}