我正在尝试使用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);
答案 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收到的那样。