Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 5492bef

Browse files
committed
Add PATCH APIs to HTTP Utils
1 parent f455d0b commit 5492bef

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

src/ServiceStack.Text/HttpUtils.cs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,88 @@ public static Task<string> PutCsvToUrlAsync(this string url, string csv,
371371
requestFilter: requestFilter, responseFilter: responseFilter);
372372
}
373373

374+
public static string PatchStringToUrl(this string url, string requestBody = null,
375+
string contentType = null, string accept = "*/*",
376+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
377+
{
378+
return SendStringToUrl(url, method: "PATCH",
379+
requestBody: requestBody, contentType: contentType,
380+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
381+
}
382+
383+
public static Task<string> PatchStringToUrlAsync(this string url, string requestBody = null,
384+
string contentType = null, string accept = "*/*",
385+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
386+
{
387+
return SendStringToUrlAsync(url, method: "PATCH",
388+
requestBody: requestBody, contentType: contentType,
389+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
390+
}
391+
392+
public static string PatchToUrl(this string url, string formData = null, string accept = "*/*",
393+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
394+
{
395+
return SendStringToUrl(url, method: "PATCH",
396+
contentType: MimeTypes.FormUrlEncoded, requestBody: formData,
397+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
398+
}
399+
400+
public static Task<string> PatchToUrlAsync(this string url, string formData = null, string accept = "*/*",
401+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
402+
{
403+
return SendStringToUrlAsync(url, method: "PATCH",
404+
contentType: MimeTypes.FormUrlEncoded, requestBody: formData,
405+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
406+
}
407+
408+
public static string PatchToUrl(this string url, object formData = null, string accept = "*/*",
409+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
410+
{
411+
string postFormData = formData != null ? QueryStringSerializer.SerializeToString(formData) : null;
412+
413+
return SendStringToUrl(url, method: "PATCH",
414+
contentType: MimeTypes.FormUrlEncoded, requestBody: postFormData,
415+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
416+
}
417+
418+
public static Task<string> PatchToUrlAsync(this string url, object formData = null, string accept = "*/*",
419+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
420+
{
421+
string postFormData = formData != null ? QueryStringSerializer.SerializeToString(formData) : null;
422+
423+
return SendStringToUrlAsync(url, method: "PATCH",
424+
contentType: MimeTypes.FormUrlEncoded, requestBody: postFormData,
425+
accept: accept, requestFilter: requestFilter, responseFilter: responseFilter);
426+
}
427+
428+
public static string PatchJsonToUrl(this string url, string json,
429+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
430+
{
431+
return SendStringToUrl(url, method: "PATCH", requestBody: json, contentType: MimeTypes.Json, accept: MimeTypes.Json,
432+
requestFilter: requestFilter, responseFilter: responseFilter);
433+
}
434+
435+
public static Task<string> PatchJsonToUrlAsync(this string url, string json,
436+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
437+
{
438+
return SendStringToUrlAsync(url, method: "PATCH", requestBody: json, contentType: MimeTypes.Json, accept: MimeTypes.Json,
439+
requestFilter: requestFilter, responseFilter: responseFilter);
440+
}
441+
442+
public static string PatchJsonToUrl(this string url, object data,
443+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
444+
{
445+
return SendStringToUrl(url, method: "PATCH", requestBody: data.ToJson(), contentType: MimeTypes.Json, accept: MimeTypes.Json,
446+
requestFilter: requestFilter, responseFilter: responseFilter);
447+
}
448+
449+
public static Task<string> PatchJsonToUrlAsync(this string url, object data,
450+
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
451+
{
452+
return SendStringToUrlAsync(url, method: "PATCH", requestBody: data.ToJson(), contentType: MimeTypes.Json, accept: MimeTypes.Json,
453+
requestFilter: requestFilter, responseFilter: responseFilter);
454+
}
455+
374456
public static string DeleteFromUrl(this string url, string accept = "*/*",
375457
Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
376458
{

0 commit comments

Comments
 (0)