如何在 shelf dart 中向另一台服务器发送请求

How to send request to another server in shelf dart

我需要从托管在 127.0.0.1 上的货架服务器向我的 firebase rtdb 发出请求,我有 url 和数据库机密。但是每当我尝试使用 http 包向数据库 url 发出 get 请求时,我都会收到 401 错误。

我的代码:

import 'dart:io';
import 'package:http/http.dart';
import 'package:firebase/firebase_io.dart';

class FirebaseLocalClient {
  void putSudokuBoard() async {
    var a = await get(
        Uri.parse(
            "<db url>"),
        headers: {
          "Authorization": "Bearer <your database secret>",
          'Content-Type': "application/js"
        });

    print(a.statusCode);
    //print(a.runtimeType);
  }
}

void main(List<String> args) {
  FirebaseLocalClient().putSudokuBoard();
}

我从货架服务器调用此代码(类似于 main 函数中的代码),但 运行 它本身收到 401 错误。 我无法理解为什么我会收到 401 错误,我有数据库机密,但我无法在该位置获取数据。我尝试使用管理 sdk json 但也收到了 401

我使用a.body时的输出:

我使用a.statuscode时的输出:

如果您使用的是数据库机密,那么您似乎需要附加 auth 参数。 每 https://firebase.google.com/docs/database/rest/retrieve-data#section-rest-uri-params

curl 'https://docs-examples.firebaseio.com/auth-example.json?auth=CREDENTIAL'

删除 Authorization header 并在 curl 中尝试