如何转换 Rest 命令中的 CURL?
出了什么问题
curl -X GET --header“接受:application/json”--header“X-Authorization:承载“ token ””“http://console.agrolog.io:8080/api/auth/user”
德尔福代码:
RESTClient1.BaseURL := 'http://console.agrolog.io:8080/api/';
RESTRequest1.Method := TRESTRequestMethod.rmGET;
RESTRequest1.Resource := 'auth/user';
RESTRequest1.Params.Clear;
with RESTRequest1.Params.AddItem do
begin
ContentType := ctAPPLICATION_JSON;
name := 'Authorization';
Value := 'X-Authorization: Bearer ' + '"'+Strtoken+'"' ;
Kind := pkHTTPHEADER;
end;
RESTRequest1.Execute;
错误是EHTTPProtocolException
,消息为'HTTP/1.1 401'
最佳答案
您设置的 REST 参数完全错误。
参数的Name
应该是'X-Authorization'
而不是'Authorization'
(为什么?'Authorization'
) code> 是标准化 header ),并且您需要从其 Value
中删除 X-Authorization:
前缀。您也不应该根本不设置其 ContentType
。
此外,您需要将 RESTRequest1.Accept
设置为 'application/json'
。
试试这个:
RESTClient1.BaseURL := 'http://console.agrolog.io:8080/api/';
RESTRequest1.Method := TRESTRequestMethod.rmGET;
RESTRequest1.Resource := 'auth/user';
RESTRequest1.Accept := 'application/json';
RESTRequest1.Params.Clear;
with RESTRequest1.Params.AddItem do
begin
Name := 'X-Authorization'; // 'Authorization'
Value := 'Bearer "'+Strtoken+'"';
Kind := pkHTTPHEADER;
end;
RESTRequest1.Execute;
关于rest - 如何在Rest命令Delphi中转换CURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65953312/