问题描述
最近两天,我一直在使用带有JSON行主体的Flutter post方法而陷入困境,这里显示了我尝试过的代码。
代码1:
void send() async {
usermodel = usermodel(userName: "usernme",password: "password");
var response = await http.post(
"https://stagingapi......",headers: {"Content-Type": "application/json"},body: json.encode(usermodel.toJson()));
print(response.body);
print(response.statusCode);
}
我已经创建了序列化的人体模型,
import 'package:json_annotation/json_annotation.dart';
part 'usermodel.g.dart';
@JsonSerializable()
class usermodel {
String userName;
String password;
// String xyz;
usermodel({this.userName,this.password});
factory usermodel.fromJson(Map<String,dynamic> json) => _$usermodelFromJson(json);
Map<String,dynamic> toJson() => _$usermodelToJson(this);
}
代码2:-
Future<User> createuser(String username,String password) async{
final String apiUrl = "https://stagingapi.....";
Map<String,String> headers = {'Content-Type':'application/json'};
final body = jsonEncode({ "userName": username,"password": password});
try {
var response = await http.post(apiUrl,headers: headers,body: body);
print(response.statusCode);
if(response.statusCode == 201){
final String responseString = response.body;
return userFromJson(responseString);
}else{
return null;
}
} catch (error) {
print('error- $error');
}
}
}
在两种情况下,或者如果我尝试使用任何邮政编码方法,都会引发以下错误,
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception:
#0 IOClient.send (package:http/src/io_client.dart:65:7)
<asynchronous suspension>
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:176:38)
#2 BaseClient.post (package:http/src/base_client.dart:58:7)
#3 post.<anonymous closure> (package:http/http.dart:70:16)
#4 _withClient (package:http/http.dart:166:20)
#5 post (package:http/http.dart:69:5)
#6 _SelectdobState.send (package:kash_app/Selectdob.dart:99:29)
#7 _SelectdobState.initState (package:kash_app/Selectdob.dart:92:6)
#8 StatefulElement._firstBuild (package:Flutter/src/widgets/framework.dart:4812:57)
#9 ComponentElement.mount (package:Flutter/src/widgets/framework.dart:4649:5)
#10 Element.inflateWidget (package:Flutter/src/widgets/framework.dart:3615:14)
#11 Element.updateChild (package:Flutter/src/widgets/framework.dart:3380:18)
#12 SingleChildRenderObjectElement.mount (package:Flutter/src/widgets/framework.dart:616<…>
解决方法
上面的代码在其他url中起作用...我已经解决了这个问题,这是我们后端团队通过添加一些configuration in IIS OR secure certificate related