[dart-dio] Fix x-www-form-urlencoded body not working (#8175)

* only use `FormData.fromMap()` for multipart content, `FormData` does not work with `x-www-form-urlencoded`
* use a basic map for `x-www-form-urlencoded` content
* fix formatting
This commit is contained in:
Peter Leibiger 2020-12-14 08:36:18 +01:00 committed by GitHub
parent 7f9012c554
commit 351377ca29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 82 additions and 79 deletions

View File

@ -40,9 +40,9 @@ class {{classname}} {
List<String> contentTypes = [{{#consumes}}"{{{mediaType}}}"{{^-last}},{{/-last}}{{/consumes}}];
{{#hasFormParams}}
Map<String, dynamic> formData = {};
{{#formParams}}
final Map<String, dynamic> formData = {};
{{#isMultipart}}
{{#formParams}}
{{^isFile}}
if ({{paramName}} != null) {
formData[r'{{baseName}}'] = parameterToString(_serializers, {{paramName}});
@ -53,12 +53,15 @@ class {{classname}} {
formData[r'{{baseName}}'] = MultipartFile.fromBytes({{paramName}}, filename: r'{{baseName}}');
}
{{/isFile}}
{{/isMultipart}}
{{^isMultipart}}
formData[r'{{baseName}}'] = parameterToString(_serializers, {{paramName}});
{{/isMultipart}}
{{/formParams}}
bodyData = FormData.fromMap(formData);
{{/isMultipart}}
{{^isMultipart}}
{{#formParams}}
formData['{{baseName}}'] = parameterToString(_serializers, {{paramName}});
{{/formParams}}
bodyData = formData;
{{/isMultipart}}
{{/hasFormParams}}
{{#bodyParam}}

View File

@ -295,10 +295,10 @@ class PetApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'name'] = parameterToString(_serializers, name);
formData[r'status'] = parameterToString(_serializers, status);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
bodyData = formData;
return _dio.request(
@ -334,7 +334,7 @@ class PetApi {
List<String> contentTypes = ["multipart/form-data"];
Map<String, dynamic> formData = {};
final Map<String, dynamic> formData = {};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}

View File

@ -323,10 +323,10 @@ class PetApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'name'] = parameterToString(_serializers, name);
formData[r'status'] = parameterToString(_serializers, status);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
bodyData = formData;
return _dio.request(
@ -362,7 +362,7 @@ class PetApi {
List<String> contentTypes = ["multipart/form-data"];
Map<String, dynamic> formData = {};
final Map<String, dynamic> formData = {};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}

View File

@ -459,22 +459,22 @@ class FakeApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'integer'] = parameterToString(_serializers, integer);
formData[r'int32'] = parameterToString(_serializers, int32);
formData[r'int64'] = parameterToString(_serializers, int64);
formData[r'number'] = parameterToString(_serializers, number);
formData[r'float'] = parameterToString(_serializers, float);
formData[r'double'] = parameterToString(_serializers, double_);
formData[r'string'] = parameterToString(_serializers, string);
formData[r'pattern_without_delimiter'] = parameterToString(_serializers, patternWithoutDelimiter);
formData[r'byte'] = parameterToString(_serializers, byte);
formData[r'binary'] = parameterToString(_serializers, binary);
formData[r'date'] = parameterToString(_serializers, date);
formData[r'dateTime'] = parameterToString(_serializers, dateTime);
formData[r'password'] = parameterToString(_serializers, password);
formData[r'callback'] = parameterToString(_serializers, callback);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['integer'] = parameterToString(_serializers, integer);
formData['int32'] = parameterToString(_serializers, int32);
formData['int64'] = parameterToString(_serializers, int64);
formData['number'] = parameterToString(_serializers, number);
formData['float'] = parameterToString(_serializers, float);
formData['double'] = parameterToString(_serializers, double_);
formData['string'] = parameterToString(_serializers, string);
formData['pattern_without_delimiter'] = parameterToString(_serializers, patternWithoutDelimiter);
formData['byte'] = parameterToString(_serializers, byte);
formData['binary'] = parameterToString(_serializers, binary);
formData['date'] = parameterToString(_serializers, date);
formData['dateTime'] = parameterToString(_serializers, dateTime);
formData['password'] = parameterToString(_serializers, password);
formData['callback'] = parameterToString(_serializers, callback);
bodyData = formData;
return _dio.request(
@ -516,10 +516,10 @@ class FakeApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'enum_form_string_array'] = parameterToString(_serializers, enumFormStringArray);
formData[r'enum_form_string'] = parameterToString(_serializers, enumFormString);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['enum_form_string_array'] = parameterToString(_serializers, enumFormStringArray);
formData['enum_form_string'] = parameterToString(_serializers, enumFormString);
bodyData = formData;
return _dio.request(
@ -634,10 +634,10 @@ class FakeApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'param'] = parameterToString(_serializers, param);
formData[r'param2'] = parameterToString(_serializers, param2);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['param'] = parameterToString(_serializers, param);
formData['param2'] = parameterToString(_serializers, param2);
bodyData = formData;
return _dio.request(

View File

@ -295,10 +295,10 @@ class PetApi {
List<String> contentTypes = ["application/x-www-form-urlencoded"];
Map<String, dynamic> formData = {};
formData[r'name'] = parameterToString(_serializers, name);
formData[r'status'] = parameterToString(_serializers, status);
bodyData = FormData.fromMap(formData);
final Map<String, dynamic> formData = {};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
bodyData = formData;
return _dio.request(
@ -334,7 +334,7 @@ class PetApi {
List<String> contentTypes = ["multipart/form-data"];
Map<String, dynamic> formData = {};
final Map<String, dynamic> formData = {};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}
@ -391,7 +391,7 @@ class PetApi {
List<String> contentTypes = ["multipart/form-data"];
Map<String, dynamic> formData = {};
final Map<String, dynamic> formData = {};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}