अन्य उत्तरों को देखते हुए कुछ साल पुराने हैं, वर्तमान में यहाँ मेरे विचार हैं जो सहायक हो सकते हैं:
सबसे सरल तरीका
private async Task<string> PostAsync(Uri uri, HttpContent dataOut)
{
var client = new HttpClient();
var response = await client.PostAsync(uri, dataOut);
return await response.Content.ReadAsStringAsync();
// For non strings you can use other Content.ReadAs...() method variations
}
एक अधिक व्यावहारिक उदाहरण
अक्सर हम ज्ञात प्रकार और JSON के साथ काम कर रहे हैं, इसलिए आप इस विचार को किसी भी संख्या में कार्यान्वयन के साथ आगे बढ़ा सकते हैं, जैसे:
public async Task<T> PostJsonAsync<T>(Uri uri, object dtoOut)
{
var content = new StringContent(JsonConvert.SerializeObject(dtoOut));
content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
var results = await PostAsync(uri, content); // from previous block of code
return JsonConvert.DeserializeObject<T>(results); // using Newtonsoft.Json
}
यह कैसे कहा जा सकता है इसका एक उदाहरण:
var dataToSendOutToApi = new MyDtoOut();
var uri = new Uri("https://example.com");
var dataFromApi = await PostJsonAsync<MyDtoIn>(uri, dataToSendOutToApi);