Я могу получить доступ к API Watson Tone Analyzer с веб-страницы, используя следующий код, написанный на PHP с использованием CURL:
$username='long-user-name';
$password='my-password';
$data = json_encode(array('text' => 'All you need is love'));
$URL = 'https://gateway.watsonplatform.net/tone-analyzer/api/v3/tone?version=2016-05-19';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;
IBM / Watson не предоставляет пример кода для доступа к API через Swift илиAlamoFire для IOS, хотя их Swift SDK, очевидно, использует AlamoFire.Я не загружаю их SDK, потому что он требует создания карт и других зависимостей, о которых люди сообщают как вызывающие проблемы.Однако вы должны иметь возможность запрашивать API с помощью AlamoFire.
Следующий код, который я пробовал, выдает ошибку 401 из-за плохой аутентификации.Может кто-нибудь из команды IBM Bluemix или где-либо еще предложить, как преобразовать вышеуказанный рабочий локон в действительный запрос AlamoFire?Заранее благодарим за любые предложения.
Мой код, который возвращает 401 для плохой аутентификации:
func postToWatson () {
print("post to watson called")
let url: String = "https://gateway.watsonplatform.net/tone-analyzer/api/v3/tone?version=2016-05-19"
let message = "All you need is love"
var parameters = [
"username":"my-username",
"password":"my-password"]
parameters["text"] = message
Alamofire.request(url, parameters: parameters)
.responseJSON { response in
print(response.request)
print(response.response)
print(response.result)
}
}