Flutter 如何处理请求后的响应dart httpClient
所以,当涉及到发出post请求时,我遇到了关于flift http包的问题,所以我使用了dart HttpClient。我根据某个地方的描述提出了一个帖子请求,但我在得到回复时遇到了问题。这是我的密码Flutter 如何处理请求后的响应dart httpClient,flutter,dart,Flutter,Dart,所以,当涉及到发出post请求时,我遇到了关于flift http包的问题,所以我使用了dart HttpClient。我根据某个地方的描述提出了一个帖子请求,但我在得到回复时遇到了问题。这是我的密码 Future<HttpClientResponse> submit() async { print('start'); Map<String, dynamic> data = { 'title' : 'My first post' }; String jsonS
Future<HttpClientResponse> submit() async {
print('start');
Map<String, dynamic> data = { 'title' : 'My first post' };
String jsonString = json.encode(data); // encode map to json
String paramName = 'param'; // give the post param a name
String formBody = paramName + '=' + Uri.encodeQueryComponent(jsonString);
List<int> bodyBytes = utf8.encode(formBody); // utf8 encode
HttpClientRequest request =
await HttpClient().postUrl(Uri.parse('https://jsonplaceholder.typicode.com/posts'));
// it's polite to send the body length to the server
request.headers.set('Content-Length', bodyBytes.length.toString());
request.headers.set('Content-Type', 'application/json');
request.add(bodyBytes);
print('done');
return await (request.close());
}
Future submit()异步{
打印(“开始”);
地图数据={'title':'myfirstpost'};
字符串jsonString=json.encode(数据);//将映射编码为json
字符串paramName='param';//为post参数指定一个名称
字符串formBody=paramName+'='+Uri.encodeQueryComponent(jsonString);
List bodyBytes=utf8.encode(formBody);//utf8 encode
HttpClientRequest请求=
等待HttpClient().postrl(Uri.parse('https://jsonplaceholder.typicode.com/posts'));
//将身体长度发送给服务器是礼貌的
request.headers.set('Content-Length',bodyBytes.Length.toString());
request.headers.set('Content-Type','application/json');
添加(bodyBytes);
打印(“完成”);
返回等待(request.close());
}
如何从该请求中获得响应?HttpClientResponse response=wait request.close();
HttpClientResponse response = await request.close();
response.transform(utf8.decoder).listen((contents) {
print(data); // <- response content is here
});
response.transform(utf8.decoder).listen((内容){
打印(数据);//HttpClientResponse=wait request.close();
response.transform(utf8.decoder).listen((内容){
打印(数据);//我从
或使用
我创建了一个通用方法,可以处理所有get请求
Future<String> getRequest([var endpoints, var queryParameters]) async {
var uri = Uri.https(NetworkUrl.BASE_URL_1, endpoints, queryParameters);
uri.replace(queryParameters: queryParameters);
var response =
await http.get(Uri.encodeFull(uri.toString()));
//Retrun reponse here
if (response.statusCode == 200) return response.body;
}
Future getRequest([var endpoints,var queryParameters])异步{
var uri=uri.https(NetworkUrl.BASE_URL_1,端点,查询参数);
replace(queryParameters:queryParameters);
var响应=
等待http.get(Uri.encodeFull(Uri.toString());
//在这里重新运行响应
if(response.statusCode==200)返回response.body;
}
要从上述方法中获得响应
Future<String> deletePostApi() async {
await NetworkRepository()
.getRequest(NetworkUrl.deletePost + '${widget.mFeedData.post_id}')
.then((value) {// <=value is json respone
var dataConvertedToJSON = json.decode(value);
print("checkEmailResp" + dataConvertedToJSON.toString());
});
}
Future deletePostApi()异步{
等待网络存储库()
.getRequest(NetworkUrl.deletePost+“${widget.mFeedData.post_id}”)
.然后((value){/我从
或使用
我创建了一个通用方法,可以处理所有get请求
Future<String> getRequest([var endpoints, var queryParameters]) async {
var uri = Uri.https(NetworkUrl.BASE_URL_1, endpoints, queryParameters);
uri.replace(queryParameters: queryParameters);
var response =
await http.get(Uri.encodeFull(uri.toString()));
//Retrun reponse here
if (response.statusCode == 200) return response.body;
}
Future getRequest([var endpoints,var queryParameters])异步{
var uri=uri.https(NetworkUrl.BASE_URL_1,端点,查询参数);
replace(queryParameters:queryParameters);
var响应=
等待http.get(Uri.encodeFull(Uri.toString());
//在这里重新运行响应
if(response.statusCode==200)返回response.body;
}
要从上述方法中获得响应
Future<String> deletePostApi() async {
await NetworkRepository()
.getRequest(NetworkUrl.deletePost + '${widget.mFeedData.post_id}')
.then((value) {// <=value is json respone
var dataConvertedToJSON = json.decode(value);
print("checkEmailResp" + dataConvertedToJSON.toString());
});
}
Future deletePostApi()异步{
等待网络存储库()
.getRequest(NetworkUrl.deletePost+“${widget.mFeedData.post_id}”)
.then((value){/submit().then((response){…})
@pskink提交方法在哪里?你想什么时候使用它?在某个按钮的click listener上?@pskink我在一个Flitter应用程序中使用它。我有一个按钮调用submit方法,所以我不明白你前面的问题:“提交方法在哪里”
如果您已经在侦听器中调用了submit()
方法,那么((响应){…})
@pskink提交方法在哪里?你想什么时候使用它?在一些按钮的click listener上?@pskink我在一个Flitter应用程序中使用它。我有一个按钮调用提交方法,所以我不理解你前面的问题:“如果你已经调用了submit()
方法,但我不能像response.body那样调用来获取响应的值,但我不能像response.body那样调用来获取响应的值我不想使用flatter http包,因为我在使用它时会出错。谢谢,我已经得到了它,而且有人之前已经建议过了。但是谢谢你,我对你的answ投了赞成票erI不想使用Flatter http包,因为我在使用它时会出错。谢谢,我已经得到了它,而且之前有人已经建议过了。但是谢谢你,我对你的答案投了赞成票