如何用标头键使API陷入混乱?

时间:2020-01-16 15:11:13

标签: flutter dart

假设宿主站点为::

https://dev.xyz.com

API标头密钥:“ voted_up_on?” 要注册新用户,您必须调用PUT方法:nil 身体是这样的:

x-api-key: 7462-3172-8773-3312-5819

现在我该如何在颤抖中做到这一点?我搜索了几本教程,但仍然感到困惑。

2 个答案:

答案 0 :(得分:1)

从dart库中导入http包并将其别名为http,这种别名的原因是您不想在文件中的任何地方都使用.get()方法建议。因此,当您将http与http.get()一起使用时,它会为您提供get的建议,您可以在其中传递名为headers的参数。

代码如下:

  import 'package:http/http.dart' as http;

  url = 'YOUR_URL';
  var response = await http.get(
    url,
    headers: {HttpHeaders.authorizationHeader: TOKEN}, //an example header
  );

就您而言,

import 'dart:convert';
import 'dart:io';
import 'dart:async';

main() async {
  String url =
      'https://dev.xyz.com';
  Map map = {
    'data': {'apikey': '7462-3172-8773-3312-5819'},
  };

  print(await apiRequest(url, map));
}

Future<String> apiRequest(String url, Map jsonMap) async {
  HttpClient httpClient = new HttpClient();
  HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));
  request.headers.set('content-type', 'application/json');
  request.add(utf8.encode(json.encode(jsonMap)));
  HttpClientResponse response = await request.close();
  // todo - you should check the response.statusCode
  String reply = await response.transform(utf8.decoder).join();
  httpClient.close();
  return reply;
}

答案 1 :(得分:0)

您需要将标头放在http请求上。例如:

await put(urlApi + 'update/'+ customer.id, headers: {'token': token, 'content-type': 'application/json'},body: body);