use*_*902 3 delphi http indy access-token bearer-token
我正在尝试使用 access_token 执行 POST 请求,并且使用 POSTMAN 可以正常工作,但是当我尝试在 Delphi 上执行相同的请求时,我找不到添加“Authorization=Bearer eyxxxxxx ... " 到请求标头,就像 POSTMAN 一样。
邮递员请求(运行良好):
POST /somepath HTTP/1.1
Host: someurl.com.br
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.....
Content-Type: application/json
(省略正文内容)
Delphi 生成的 Indy 请求,被 HTTP Analyzer 捕获(总是返回 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);
Run Code Online (Sandbox Code Playgroud)
刚刚发现问题。我在“授权”和“持票人”字样之间添加了错误的分隔符。
错误的:
FIdHTTP.Request.CustomHeaders.FoldLines := False;
FIdHTTP.Request.CustomHeaders.Add('Authorization=Bearer ' + txtToken.Text);
Run Code Online (Sandbox Code Playgroud)
正确的:
FIdHTTP.Request.CustomHeaders.FoldLines := False;
FIdHTTP.Request.CustomHeaders.Add('Authorization:Bearer ' + txtToken.Text);
Run Code Online (Sandbox Code Playgroud)
将 '=' 替换为 ':' 后,我收到了预期的响应,就像 POSTMAN 收到的响应一样。
| 归档时间: |
|
| 查看次数: |
20426 次 |
| 最近记录: |