Ссылка Watson, которую вы предоставляете, показывает пример с curl -u
.curl
по умолчанию Basic
аутентификация, когда -u
предоставляется без специального метода аутентификации (например, дайджест).Таким образом, добавление имени пользователя и пароля в URL-адрес - это не одно и то же.
http-клиент Dart поддерживает базовую аутентификацию, но для этого потребуется дополнительная передача данных на сервер, поэтому часто проще отправлять учетные данные при каждомзапрос.Следующий код возвращает вас к ошибке 401.
import 'dart:convert';
import 'package:http/http.dart' as http;
main() async {
http.Response r = await http.post(
'https://gateway.watsonplatform.net/personality-insights/api/v3/profile',
body: 'some random string',
headers: {
'Accept': 'application/json',
'Authorization': basicAuthorizationHeader(
'6cfcbb79-1801-4588-a1b3-5c3ec101244f',
'YFM6h0rIFfzf',
)
},
);
print(r.statusCode);
print(r.body);
}
String basicAuthorizationHeader(String username, String password) {
return 'Basic ' + base64Encode(utf8.encode('$username:$password'));
}