Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http FormatException:基数为10的数字无效_Http_Flutter_Radix - Fatal编程技术网

Http FormatException:基数为10的数字无效

Http FormatException:基数为10的数字无效,http,flutter,radix,Http,Flutter,Radix,我正在尝试使用flatter和HttpClient接收get请求 这是我试图完成的完整代码 getSuggest() async { try { var httpClient = new HttpClient(); var uri = new Uri.http( 'http://autocomplete.geocoder.api.here.com', '/6.2/suggest.json', { 'app_id': 'APP

我正在尝试使用flatter和HttpClient接收get请求

这是我试图完成的完整代码

  getSuggest() async {
    try {
      var httpClient = new HttpClient();
      var uri = new Uri.http(
          'http://autocomplete.geocoder.api.here.com', '/6.2/suggest.json', {
        'app_id': 'APP_ID',
        'app_code': 'APP_CODE',
        'query': '123 Main Street',
        'country': 'USA',
        'language': 'en',
      });
      var request = await httpClient.getUrl(uri);
      var response = await request.close();
      var responseBody = await response.transform(Utf8Decoder()).join();
      Map data = jsonDecode(responseBody);
      print(data);
    } catch (error) {
      print(error);
    }
  }
我正在使用

import 'dart:io';
import 'dart:convert';
但是我的代码总是被发送到
print(error)
,并且被打印的错误是

FormatException:基数为10的数字无效

有什么想法吗


谢谢

问题在于方案。您不必在
Uri.http
Uri.https
方法中设置它,它是自动设置的,因此使用以下方法进行更改:

Uri.http(
        'autocomplete.geocoder.api.here.com', '/6.2/suggest.json', {
        'app_id': 'APP_ID',
        'app_code': 'APP_CODE',
        'query': '123 Main Street',
        'country': 'USA',
        'language': 'en',
      });
我建议使用package并执行类似操作:

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


final json = const JsonCodec();
getSuggest() async {
    try {
      var uri = Uri.http(
          'autocomplete.geocoder.api.here.com', '/6.2/suggest.json', {
        'app_id': 'APP_ID',
        'app_code': 'APP_CODE',
        'query': '123 Main Street',
        'country': 'USA',
        'language': 'en',
      });
      var response = await http.get(uri);
      var data = json.decode(response.body);
      print(data);
    } catch (error) {
      print(error);
    }
  }
如果需要设置更多内容(例如,
用户代理
),请使用其
http客户端

此错误的原因是您不必像上面那样提供https://like。基本url就足够了。此外,您应该使用
Uri.http
而不是
Uri.https
,因为您的URL使用
http://
(而不是
https://
)。你应该像下面这样做

var url = Uri.http('192.168.43.5:3000/api', '/auth/getAllUsers', {'q': '{http}'});

你能发布整个错误日志吗?打印
response.body
并发布输出这太完美了!
var url = Uri.http('192.168.43.5:3000/api', '/auth/getAllUsers', {'q': '{http}'});