TRestClient
TRestClient
Delphi XE6开始,REST Client系列元件渐渐开始成为 Delphi 团队的重点开发项目之一。TRESTClient, TRESTRequest, TRESTResponse 系列组合。
var
jo: TJSONObject;
begin
jo:= TJSONObject.Create;
try
ResetRESTComponentsToDefaults;
RESTClient.BaseURL := 'http://ynmiddle:9999/';
RESTClient.Authenticator := HTTPBasicAuthenticator1;
RESTClient.ContentType := 'application/x-www-form-urlencoded';
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Resource := 'oauth/token';
HTTPBasicAuthenticator1.Username := 'orbid-hml';
HTTPBasicAuthenticator1.Password := EmptyStr;
jo.AddPair('scope', 'product:show stock:save stock:update warehouse:list warehouse:save warehouse:show '+
'warehouse:update partnerOrder:show partnerOrder:list partnerOrder:update');
jo.AddPair('grant_type', 'client_credentials');
RESTRequest.Params.Clear;
RESTRequest.Params.AddHeader('authorization', 'Basic '+Edt_Base64.Text);
RESTRequest.AddBody(jo);
RESTRequest.Execute;
memLog.Text:=RESTResponse1.Content;
finally
FreeAndNil(jo);
end;
end;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | procedure TForm1.Button4Click(Sender: TObject); var url,Timestamp,Signature,seckey: string ; param:Tstringlist; begin url:= 'https://mws.amazonservices.com/Orders/2013-09-01' ; self.NetHTTPRequest1.Accept := 'text/html, application/xhtml+xml, */*' ; self.NetHTTPRequest1.url := url; self.NetHTTPRequest1.MethodString := 'POST' ; seckey:= 'seckey' ; param:=Tstringlist.Create; param.Add( 'AWSAccessKeyId=AWSAccessKeyId' ); param.Add( 'Action=GetOrder' ); param.Add( 'SellerId=SellerId' ); param.Add( 'MWSAuthToken=MWSAuthToken' ); param.Add( 'SignatureVersion=2' ); param.Add( 'Timestamp=' +DateToISO8601(now, true )); param.Add( 'Version=2013-09-01' ); param.Add( 'SignatureMethod=HmacSHA256' ); param.Add( 'AmazonOrderId.Id.1=AmazonOrderId.Id.1' ); Signature:=system.hash.THashSHA2.GetHMAC( 'mws.amazonservices.com/Orders/2013-09-01' +param.Text,seckey) ; Signature:=Data.Cloud.CloudAPI.Encode64(Signature); param.Add( 'Signature=' +Signature); edit1.Text:=signature; edit2.Text:=system.hash.THashSHA2.GetHMAC(trim(memo1.Text),seckey) ; //memo1.Text:='mws.amazonservices.com/Orders/2013-09-01'+param.Text; //Signature:=Data.Cloud.CloudAPI.TCloudSHA256Authentication.GetHashSHA256Hex('mws.amazonservices.com/Orders/2013-09-01'+param.Text); self.Memo2.Text := self.NetHTTPRequest1.Post(url, param).ContentAsString(tencoding.UTF8); end; |
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/13447634.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-08-06 LITEIDE配置
2019-08-06 下载GO的开源开发工具LITEIDE
2013-08-06 指针的本质
2013-08-06 SQL SERVER 导入EXCEL的存储过程