additional http extensions
This commit is contained in:
parent
0fcef9ca0b
commit
71f00412c1
@ -1,4 +1,6 @@
|
|||||||
using System.Net.Http;
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -22,6 +24,40 @@ namespace BinaryDad.Extensions
|
|||||||
return client.PostAsync(requestUrl, content);
|
return client.PostAsync(requestUrl, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Send a PATCH request to the specified Uri as an asynchronous operation.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="client"></param>
|
||||||
|
/// <param name="requestUrl"></param>
|
||||||
|
/// <param name="model"></param>
|
||||||
|
/// <param name="useDataContractJsonSerializer"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Task<HttpResponseMessage> PatchAsJsonAsync(this HttpClient client, string requestUrl, object model, bool useDataContractJsonSerializer = false)
|
||||||
|
{
|
||||||
|
var content = new StringContent(model.Serialize(), Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
|
return client.PatchAsync(requestUrl, content);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Send a PATCH request to the specified Uri as an asynchronous operation.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="client"></param>
|
||||||
|
/// <param name="requestUri"></param>
|
||||||
|
/// <param name="content"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Task<HttpResponseMessage> PatchAsync(this HttpClient client, string requestUri, HttpContent content)
|
||||||
|
{
|
||||||
|
var method = new HttpMethod("PATCH");
|
||||||
|
|
||||||
|
var message = new HttpRequestMessage(method, requestUri)
|
||||||
|
{
|
||||||
|
Content = content
|
||||||
|
};
|
||||||
|
|
||||||
|
return client.SendAsync(message);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Serialize the HTTP content to type <typeparamref name="TResponse"/> as an asynchronous operation.
|
/// Serialize the HTTP content to type <typeparamref name="TResponse"/> as an asynchronous operation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -35,5 +71,41 @@ namespace BinaryDad.Extensions
|
|||||||
|
|
||||||
return result.Deserialize<TResponse>();
|
return result.Deserialize<TResponse>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the body of a <see cref="WebResponse"/> as a string
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="response"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetResponseBody(this WebResponse response)
|
||||||
|
{
|
||||||
|
if (response != null)
|
||||||
|
{
|
||||||
|
using (var reader = new StreamReader(response.GetResponseStream()))
|
||||||
|
{
|
||||||
|
return reader.ReadToEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the body of a <see cref="WebResponse"/> as a string
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="response"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static async Task<string> GetResponseBodyAsync(this WebResponse response)
|
||||||
|
{
|
||||||
|
if (response != null)
|
||||||
|
{
|
||||||
|
using (var reader = new StreamReader(response.GetResponseStream()))
|
||||||
|
{
|
||||||
|
return await reader.ReadToEndAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user