我正试图通过面对以下问题为其余客户创建一个简单的包装器:
我有一个外部课程:
typedef void Callback(int code, String body);
class HttpClient {
void post(String url, Map<String, String> headers, Map<String, String> params,
Callback callback) async {
final encoding = Encoding.getByName('utf-8');
Response response =
await post(url, headers: headers, body: params, encoding: encoding);
callback(200, "lol");
}
}
我的await post(...)
被突出显示并显示以下错误:“此处的表达式具有'void'类型,因此无法使用。
有趣的是,如果我将方法更改为私有,则突出显示会消失。
我还可以将post
声明为私有函数,然后通过传递所有相同参数的另一个公共函数来调用它。
我应该如何编写此函数,然后再调用另一个地方?谢谢!
编辑
感谢@Jack,我找到了解决方法:
导入应该
import 'package:http/http.dart' as http;
然后 响应响应= 等待发布(URL,标题:标题,正文:参数,编码:编码);
应更改为
var response =
await http.post(url, headers: headers, body: params, encoding: encoding);
答案 0 :(得分:2)
IDE认为您引用的是post
方法而不是http.post
,因为您的方法返回一个void。可以通过将await post(...)
替换为await http.post(...)
来解决。希望有帮助!如果这不起作用,请在下面发表评论。