|
1 | 1 | using System.Net; |
2 | 2 | using System.Text; |
| 3 | +using System.Web; |
3 | 4 | using HttpClientToCurl.Utility; |
4 | 5 |
|
5 | | -namespace HttpClientToCurl; |
| 6 | +namespace HttpClientToCurl.Builder.Concrete.Common; |
6 | 7 |
|
7 | | -internal static class Builder |
| 8 | +internal static class Extensions |
8 | 9 | { |
9 | | - internal static StringBuilder Initialize(HttpMethod httpMethod) |
| 10 | + internal static StringBuilder Initialize(this StringBuilder stringBuilder, HttpMethod httpMethod) |
10 | 11 | { |
11 | | - var stringBuilder = new StringBuilder("curl"); |
| 12 | + stringBuilder.Append("curl"); |
12 | 13 |
|
13 | 14 | if (httpMethod != HttpMethod.Get) |
14 | 15 | { |
@@ -40,7 +41,7 @@ internal static StringBuilder AddAbsoluteUrl(this StringBuilder stringBuilder, s |
40 | 41 |
|
41 | 42 | string address = GetAbsoluteAddress(baseAddressUri, baseAddressIsAbsoluteUri, requestUri, requestUriIsAbsoluteUri); |
42 | 43 |
|
43 | | - var encodedAddress = ApplyEncodeUri(address); |
| 44 | + var encodedAddress = address.ApplyEncodeUri(); |
44 | 45 |
|
45 | 46 | return stringBuilder |
46 | 47 | .Append($"{AddSingleQuotationMark(encodedAddress ?? address)}") |
@@ -82,7 +83,7 @@ private static string GetAbsoluteAddress(Uri baseAddressUri, bool baseAddressIsA |
82 | 83 | return $"{baseAddressUri}{requestUri}"; |
83 | 84 | } |
84 | 85 |
|
85 | | - private static string ApplyEncodeUri(string address) |
| 86 | + private static string ApplyEncodeUri(this string address) |
86 | 87 | { |
87 | 88 | string result = null; |
88 | 89 |
|
@@ -195,4 +196,26 @@ internal static StringBuilder AddBody(this StringBuilder stringBuilder, HttpCont |
195 | 196 |
|
196 | 197 | return stringBuilder; |
197 | 198 | } |
| 199 | + |
| 200 | + private static void AppendBodyItem(this StringBuilder stringBuilder, object body) |
| 201 | + => stringBuilder |
| 202 | + .Append("-d") |
| 203 | + .Append(' ') |
| 204 | + .Append('\'') |
| 205 | + .Append(body) |
| 206 | + .Append('\'') |
| 207 | + .Append(' '); |
| 208 | + |
| 209 | + private static void AddFormUrlEncodedContentBody(this StringBuilder stringBuilder, string body) |
| 210 | + { |
| 211 | + string decodedBody = HttpUtility.UrlDecode(body); |
| 212 | + string[] splitBodyArray = decodedBody.Split('&'); |
| 213 | + if (splitBodyArray.Any()) |
| 214 | + { |
| 215 | + foreach (string item in splitBodyArray) |
| 216 | + { |
| 217 | + stringBuilder.AppendBodyItem(item); |
| 218 | + } |
| 219 | + } |
| 220 | + } |
198 | 221 | } |
0 commit comments