是否可以使用Dart http库添加客户端凭证?
问题描述:
的HttpClient
类dart:io
使您能够凭据添加到客户端的请求,就像这样:是否可以使用Dart http库添加客户端凭证?
var client = new HttpClient()
..addCredentials(...creds...);
的问题是,我需要多文件上传的支持,而这已被证明极难使用dart:io
做。 http
库是很多更好。
问题是,据我所知,无法向http
库中的客户端请求添加凭据。如果我错了,事实上有办法做到这一点,请告诉我。
答
您可以将authorization
标题添加到多部分请求中。对于基本验证:
import 'dart:convert';
import 'package:crypto/crypto.dart';
var request = new http.MultipartRequest("POST", url);
final auth = CryptoUtils.bytesToBase64(UTF8.encode("$username:$password"));
request.headers['authorization'] = "Basic $auth";
//....
我正在使用Dart 1.15并且转换为Base64确实发生了变化。一个不需要Crypto包,但可以使用'dart:convert':'final auth = BASE64.encode(UTF8.encode(“$ {username}:$ {password}”));'' – Sgoettschkes