我正在尝试使用access_令牌执行post请求,使用post m an可以很好地工作,但是当我在delphi上尝试执行相同的请求时,我找不到像postman那样将“authorization=bearer eyxxxxxx…”添加到请求头中的方法。
邮递员要求(工作正常):
post/somepath http/1.1
主持人:someurl.com.br
授权:持票人Eyjhbgcioijsuzi1nij9…..
内容类型:application/json
(正文内容注释)
Delphi生成的Indy请求,由HTTP Analyzer捕获(总是返回401禁止错误,因为缺少“authorization=bearer”部分):
post/somepath http/1.1
主持人:someurl.com.br
内容类型:application/json
(正文内容注释)
我试图使用下面的代码添加头,但是“authorization=bearer eyxxxxxx…”的头部分不是根据请求生成的,返回401禁止错误。

FIdHTTP.Request.CustomHeaders.FoldLines := False;
FIdHTTP.Request.CustomHeaders.Add('Authorization=Bearer ' + txtToken.Text);

最佳答案

刚发现问题。我在“授权”和“持票人”之间加错了分隔符。
错误:

FIdHTTP.Request.CustomHeaders.FoldLines := False;
FIdHTTP.Request.CustomHeaders.Add('Authorization=Bearer ' + txtToken.Text);

对的:
FIdHTTP.Request.CustomHeaders.FoldLines := False;
FIdHTTP.Request.CustomHeaders.Add('Authorization:Bearer ' + txtToken.Text);

将“=”替换为“:”后,我收到了预期的响应,就像邮递员收到的响应一样。

07-28 11:52