繁体   English   中英

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

[英]How to add a “Authorization=Bearer” header with Indy in Delphi?

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

POSTMAN请求(运行良好):

POST / somepath HTTP / 1.1
主持人:someurl.com.br
授权:Bearer eyJhbGciOiJSUzI1NiJ9 .....
内容类型:application / json

(省略身体内容)

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

POST / somepath HTTP / 1.1
主持人:someurl.com.br
内容类型:application / json

(省略身体内容)

我尝试使用下面的代码添加标头,但是在请求中未生成标有“ Authorization = Bearer eyxxxxxx ...”的标头部分,并返回401 Forbidden错误。

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

用':'替换'='之后,我收到了预期的响应,就像POSTMAN收到的一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM