diff --git a/lib/codegen/csharp/rest_sharp.dart b/lib/codegen/csharp/rest_sharp.dart index 29ecd7cf..54ebb120 100644 --- a/lib/codegen/csharp/rest_sharp.dart +++ b/lib/codegen/csharp/rest_sharp.dart @@ -39,8 +39,12 @@ class Program request.AddHeader("{{header}}", "{{value}}"); """; String kTemplateFormData = """ - request.AddFile("{{name}}", "{{value}}"); - + {% if type == "text" -%} + request.AddParameter("{{name}}", "{{value}}", ParameterType.RequestBody); +{% else -%} + request.AddFile("{{name}}", "{{value}}"); +{% endif -%} + """; String kTemplateJsonData = """ var jsonBody = new {{jsonData}}; @@ -53,7 +57,8 @@ class Program String kStringEnd = """ var response = await client.ExecuteAsync(request); - Console.WriteLine(response.Content); + Console.WriteLine("Status Code: " + response.StatusCode); + Console.WriteLine("Response Content: " + response.Content); } catch(Exception ex){ Console.WriteLine("Error: " + ex); @@ -110,24 +115,30 @@ class Program jj.Template templateHeaders = jj.Template(kTemplateHeaders); String headersResult = ""; for (var header in headers) { - headersResult += templateHeaders - .render({"header": header["name"], "value": header["value"]}); + headersResult += templateHeaders.render({ + "header": header["name"], + "value": header["name"] == "Content-Type" + ? header["value"] + .toString() + .split(';') + .first // boundary is removed + : header["value"] + }); } result += headersResult; result += kStringLineBreak; } - print(requestModel.formDataMapList); - print("hi"); - print(requestModel.formDataList); + if (requestModel.hasFormData) { jj.Template templateFormData = jj.Template(kTemplateFormData); String formDataResult = ""; - requestModel.formDataMapList.forEach((data) { + for (var data in requestModel.formDataMapList) { formDataResult += templateFormData.render({ "name": data["name"], "value": data["value"], + "type": data["type"] }); - }); + } result += formDataResult; result += kStringLineBreak; } diff --git a/lib/utils/http_utils.dart b/lib/utils/http_utils.dart index cdd8b87b..1b86dfb1 100644 --- a/lib/utils/http_utils.dart +++ b/lib/utils/http_utils.dart @@ -163,7 +163,7 @@ String? formatBody(String? body, MediaType? mediaType) { String getBaseUrl(String url) { Uri uri = Uri.parse(url); - return "${uri.scheme}://${uri.host}"; + return "${uri.scheme}://${uri.host}${uri.hasPort ? ":${uri.port}" : ""}${uri.hasFragment ? "#${uri.fragment}" : ""}"; } String getUrlPath(String url) {