如何在Delphi中添加Indy的“Authorization = Bearer”头?

时间:2016-07-08 17:45:40

标签: http delphi access-token indy bearer-token

我正在尝试使用access_token执行POST请求,并且使用POSTMAN工作正常,但是当我尝试在Delphi上执行相同的请求时,我找不到添加“Authorization = Bearer eyxxxxxx”的方法......“对于Request标题,就像POSTMAN一样。

POSTMAN请求(运作良好):

POST / somepath HTTP / 1.1
主持人:someurl.com.br
授权:bearer eyJhbGciOiJSUzI1NiJ9 .....
Content-Type:application / json

(身体内容无效)

由Delphi生成的Indy请求,由HTTP Analyzer捕获(总是返回401 Forbidden错误,因为没有“Authorization = Bearer”部分):

POST / somepath HTTP / 1.1
主持人:someurl.com.br
Content-Type:application / json

(身体内容无效)

我尝试使用下面的代码添加标题,但是在Request上没有生成带有“Authorization = Bearer eyxxxxxx ...”的标题部分,返回401 Forbidden错误。

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

1 个答案:

答案 0 :(得分:4)

刚发现问题。我在"授权"之间添加了错误的分隔符。和#34; Bearer"词语的

错误:

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);

更换' ='通过':',我收到了预期的回复,就像POSTMAN收到的那样。