如何在Flutter中将cURL转换为http post

时间:2019-07-03 21:26:40

标签: curl flutter dart

我有一个成功运行的Rest API,可以将curl发布为:

curl -X POST "{{baseURL}}/api/auth/login" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ \"nick\": \"string"\", \"password\": \"string\"}"

我的愿望是编写一个代码来完成上述命令的工作,我的意思是如何以正确的方式对东西进行解码/编码。这是我到目前为止所得到的:

Future<http.Response> postRequest (String nick, String password) async {
  var url ='{{baseURL}}/api/auth/login';
  var body = jsonEncode({ "nick": "$nick", "password": "$password"});

  print("Body: " + body);

  http.post(url,
    headers: {"accept": "application/json","Content-Type": "application/json- 
     patch+json"},
    body: body
  ).then((http.Response response) {
 });
}

谢谢!

4 个答案:

答案 0 :(得分:1)

wait函数中无需使用<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $("#DeltaSiteLogo>a").attr("href","http://sp2013/sites/team"); }); </script> -使用then通常更容易且更具可读性。我假设您真的不想要返回async并将其留给调用方来处理。由于您的accept设置为JSON,因此您也可以立即解码响应并返回已解析的树(或其中的一部分)-但仅是建议。

(我已经纠正了样式和格式。)

尝试一下:

await

答案 1 :(得分:1)

var map = new Map<String, dynamic>();
map["nick"] = nick;
map["password"] = password;
http.post(url, body: map);

答案 2 :(得分:0)

你可以使用这个包,而不是在颤动中用 Curl 给自己压力

Twilio_Flutter

你可以在这里得到一篇文章

https://medium.com/flutterdevs/sms-using-twilio-in-flutter-f7240c94039a

答案 3 :(得分:0)

你可以使用这个包,而不是用 Curl 给自己压力

Twilio_Flutter

你可以在这里得到一篇文章