首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Prestashop API检索数据并在颤动中显示

无法从Prestashop API检索数据并在颤动中显示
EN

Stack Overflow用户
提问于 2020-06-18 16:33:38
回答 2查看 350关注 0票数 1

我正在尝试从Prestashop中检索数据,并将其放在flutter小工具上。这是代码:但我得到了错误,因为它也是下面。

我需要知道的是开始获取prestashop数据并将其显示到我的flutter应用程序中,这些产品-订单-客户我创建了类,其中从prestashop获取未来数据,操作将由应返回json的平面按钮给出。Link是正确的,并且也是prestashop中的key服务密钥

代码语言:javascript
复制
import 'dart:async';

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

void main() {
  runApp(HomePage());
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  Future getData() async {
    http.Response response = await http
        .get('https://uibox.store/api/products/1?output_format=JSON', headers: {
      "Autorization": ('74R9CQC6SX6Y2P369DLZ73VFB9AB5LV1'),
      "Accept": "application/json",
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.blue,
        appBar: AppBar(
          centerTitle: true,
          backgroundColor: Colors.black,
          title: Text('TestAPI'),
        ),
        body: Container(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Center(
                child: FlatButton(
                    color: Colors.white,
                    onPressed: () {
                      getData();
                    },
                    child: Text('Click here to get data')),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

这是我得到的错误

代码语言:javascript
复制
Error: XMLHttpRequest error.
    dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:20      get current
packages/http/src/browser_client.dart 84:22                                       <fn>
dart-sdk/lib/async/zone.dart 1450:54                                              runUnary
dart-sdk/lib/async/future_impl.dart 143:18                                        handleValue
dart-sdk/lib/async/future_impl.dart 696:44                                        handleValueCallback
dart-sdk/lib/async/future_impl.dart 725:32                                        _propagateToListeners
dart-sdk/lib/async/future_impl.dart 519:7                                         [_complete]
dart-sdk/lib/async/stream_pipe.dart 61:11                                         _cancelAndValue
dart-sdk/lib/async/stream.dart 1229:7                                             <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 324:14  _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 329:39  dcall
dart-sdk/lib/html/dart2js/html_dart2js.dart 37204:58                              <fn>


    at Object.createErrorWithStack (http://localhost:34359/dart_sdk.js:4477:12)
    at Object._rethrow (http://localhost:34359/dart_sdk.js:37464:16)
    at async._AsyncCallbackEntry.new.callback (http://localhost:34359/dart_sdk.js:37458:13)
    at Object._microtaskLoop (http://localhost:34359/dart_sdk.js:37290:13)
    at _startMicrotaskLoop (http://localhost:34359/dart_sdk.js:37296:13)
    at http://localhost:34359/dart_sdk.js:32918:9
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-08 23:29:31

您需要对密钥授权进行如下编码:

代码语言:javascript
复制
String username = 'YOUR-KEY';
String password = ':';
String auth =
    'Basic ' + base64Encode(utf8.encode('$username:$password'));

 
Response response = await get('https://uibox.store/api/products/1?output_format=JSON',
    headers: <String, String>{'authorization': auth,});

查看此answer

票数 2
EN

Stack Overflow用户

发布于 2020-06-29 22:02:07

您必须对授权密钥进行base64编码。

试试这个:(我不是flutter程序员)

代码语言:javascript
复制
import 'dart:convert';
Codec<String, String> stringToBase64 = utf8.fuse(base64);
String encoded = stringToBase64.encode(credentials);

More info.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62445736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档