我正在使用 HttpClient
在.Net core 3.1中,我的大多数请求都遵循类似的模式。无论使用何种HTTP方法,我的大多数请求都遵循类似的模式。
所以我建立了一个包装函数,它可以完成这些事情,而且它把HTTP方法作为参数。但是,到了 "发送请求 "这一步,我需要用switch语句来调用HttpClient上相应的方法来调用。
我敢肯定,在皮肤下,getAsync()PostAsync()等都是调用同一个底层函数,并将Http方法作为参数传递,但我看不到任何从外部这样调用的方法。这似乎是一个奇怪的遗漏,因为根据我的经验,大多数HTTP库都是这样工作的。
希望这能帮助你。
// For JsonConvert use Newtonsoft.Json
string url = "YourURL";
string body = JsonConvert.SerializeObject(BodyModel);
string headerParameter = "ASD123456789";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Content-Type of request, it can be application/xml to other
client.DefaultRequestHeaders.Add("Device", headerParameter ); // first is name, second one is value
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url) // there you can have Get, Post, Put, Delete and etc. And every request needs to be configured by its settings
{
Content = new StringContent(body, Encoding.UTF8, "application/json")
};
HttpResponseMessage response = await client.SendAsync(request);
if ((int)response.StatusCode == 200)
{
string responseString = await response.Content.ReadAsStringAsync();
ResponseModel responseModel = JsonConvert.DeserializeObject<ResponseModel>(responseString);
}