如何使用3个参数创建获取请求?

时间:2019-07-23 08:56:07

标签: flutter dart

我尝试这样做。但这给了我错误:未处理的异常:HandshakeException:客户端中的握手错误(OS错误: E / flutter(31038):WRONG_VERSION_NUMBER(tls_record.cc:242))主机名有好名字。这是一台服务器。

这是我的代码。该怎么做?

var queryParameters = {
            'abc': 'abc',
            'bcd': 'bcd,
            'cde' : 'cde'
          };
var uri = Uri.https('www.xyz.pl:1234', '/admin/api/get', queryParameters);
var response1 = await http.get(uri);

3 个答案:

答案 0 :(得分:1)

var res = await http.get(
  Uri.encodeFull('www.xyz.pl'), 
  headers : queryParameters);

硬编码

var res = await http.get(
  Uri.encodeFull('www.xyz.pl'), 
  headers : {
  "abc": "abc",
  "bcd": "bcd",
  "cde": "cde"
});

final statusCode = res.statusCode;

说明如何在此处提出经过身份验证的请求-https://flutter.dev/docs/cookbook/networking/authenticated-requests

答案 1 :(得分:1)

var queryParameters = {
            'abc': 'abc',
            'bcd': 'bcd,
            'cde' : 'cde'
          };

var uri ='www.xyz.pl:1234/admin/api/get';  // your url

bool trustSelfSigned = true;

HttpClient httpClient = new HttpClient()
      ..badCertificateCallback =
      ((X509Certificate cert, String host, int port) => trustSelfSigned);
IOClient ioClient = new IOClient(httpClient);

await ioClient.get(Uri.parse(uri), body: queryParameters).then((response) {
    if (response.statusCode == 200) {
         print(response);
       }

尝试此代码

答案 2 :(得分:0)

您可以创建Map<String, String> headers, body, encoding来传递多个请求参数。您可以检查它here