![](/img/trans.png)
[英]How can I retrieve more data from Prestashop API to my flutter app?
[英]Cant retrieve data from Prestashop API and display on flutter
我正在嘗試從 Prestashop 檢索數據並在 flutter 小部件上獲取數據。 這是代碼:但我得到了錯誤,如下所示。
我需要知道的是開始獲取 prestashop 數據並將其顯示到我的 flutter 應用程序等產品 - 訂單 - 我創建的客戶 Class 從 prestashop 獲取未來數據,操作將由平面按鈕給出,該按鈕應返回 Z466DEEC76ECDF5FCA6D38571F6324D5444。 鏈接是正確的,也是 prestashop 中的 Webservice 密鑰
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')),
),
],
),
),
),
);
}
}
這是我得到的錯誤
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
您需要像這樣對您的密鑰授權進行編碼:
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,});
看看這個答案
您必須 base64 對授權密鑰進行編碼。
試試這個:(我不是 flutter 程序員)
import 'dart:convert';
Codec<String, String> stringToBase64 = utf8.fuse(base64);
String encoded = stringToBase64.encode(credentials);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.