Я зарегистрировал заявку на Azure, получил секретный и успешно получил маркер доступа с помощью TIdHTTP с моей Delphi 2010:Получение 400 ответа при использовании Delphi, чтобы получить Microsoft Translation
paramsList := TStringList.Create;
paramsList.Add('grant_type=client_credentials');
paramsList.Add('client_id=<ClientID>');
paramsList.Add('client_secret=<ClientSecret>');
paramsList.Add('scope=http://api.microsofttranslator.com');
try
Result := idHTTP.Post(uri, lParamList);
finally
FreeAndNill(idHTTP);
FreeAndNill(paramsList);
end;
Я тогда извлечь лексемы часть ответа с использованием копии. Теперь, когда я пытаюсь получить фактический перевод, я получаю ошибку «Плохой запрос». Вот что я пытаюсь:
idHTTP.Request.CustomHeaders.AddValue('Authorization', headers);
try
stringResult := idHTT.Get('http://api.microsofttranslator.com/v2/Http.svc/Translate?text=Gracias%20a%20l%20vida&from=es&to=en');
finally
FreeAndNil(idHTTP);
end;
Я также не получаю ответ, используя сообщение:
paramList := TStiringList.Create;
paramList.Add('Authorization= Bearer ' + Token);
try
idHTTP.Post(uri, paramList);
finally
...
Тем не менее такой же ответ - 400, Любые мысли?
Вы добавляете пользовательские 'заголовок Authorization', но вы сделали не показывать код, создающий значение заголовка, уверены ли вы, что вы делаете это правильно? Во втором примере (который BTW не будет работать как «Авторизация» - это заголовок HTTP, а не поле формы отправки), у вас есть '' Authorization = Bearer '+ Token', который должен быть '' Authorization = Bearer' + Token' вместо этого у IOW у вас есть дополнительное пространство перед «Носителем». Вы делаете ту же ошибку в примере «CustomHeaders» при назначении значения «заголовкам»? –
Привет, Рами, спасибо, что вернулись ко мне. Вы говорите, что второй пример не будет работать, поскольку он не является полем формы отправки, как его следует отправить? Я скопировал значение ключа + из образцов PHP и C#, которые работают для меня, там говорится: «Авторизация: Bearer http ...» – asafadd
Как я уже сказал, «Авторизация» - это HTTP-заголовок. Пример 'CustomHeaders' обрабатывает этот сценарий, не помещайте его в опубликованный' TStringList'. Но вы не ответили на мой вопрос: есть ли переменная 'headers', содержащая те же ошибочные пробелы, что и данные' TStringList'? –