delphi - Delphi 10.4 和 TRESTRequest 导致未知错误 Webbroker ISAPI DLL
问题描述
我们在 Xero API 集成中遇到了这个问题。RestRequest.Execute 无缘无故地导致我们出错。但是当我们将它作为独立应用程序(localhost exe)运行时,它运行良好。但是将其转换为 Webbroker ISAPI DLL 并通过 IIS 在我们的域上运行,我们无法通过第一个 RESTRequest.Execute 行。目前使用 Delphi 10.4 和 REST 组件作为具有 ISAPI 的 Webbroker。
function TXero2.GetAccessToken(Authorization, sAuthCode, ReDirectURI: AnsiString): AnsiString;
begin
TRY
ResetRESTComponentsToDefaults;
RESTClient.UserAgent := XeroUserAgent;
RESTRequest.Client := RESTClient;
RESTClient.BaseURL := XeroAPIIdentityURL;
RESTClient.ContentType := 'application/x-www-form-urlencoded';
RESTClient.Params.AddItem('Authorization', Authorization, TRESTRequestParameterkind.pkHTTPHEADER, [TRESTRequestParameterOption.poDoNotEncode]);
RESTRequest.Resource := 'connect/token';
RESTRequest.Params.AddItem('grant_type', 'authorization_code', TRESTRequestParameterKind.pkREQUESTBODY);
RESTRequest.Params.AddItem('code', sAuthCode, TRESTRequestParameterKind.pkREQUESTBODY);
RESTRequest.Params.AddItem('redirect_uri', ReDirectURI, TRESTRequestParameterKind.pkREQUESTBODY);
RESTRequest.Method := TRESTRequestMethod.rmPOST;
RESTRequest.Execute; //error occurs here
result := Restresponse.Content;
EXCEPT
on e: Exception do
Codesite.Send(ClassName + '.GetAccessToken: ' + e.Message);
END;
end;
这实际上只是一个直接的命令,并且在独立时可以正常工作。有人遇到同样的问题吗?
解决方案
推荐阅读
- sql-server - 堆表上的集群和非集群与非集群
- javascript - Tablesorter - filter-select 和 filter_saveFilters
- c# - 使用 C# 在后端使用 SOAP Web 服务
- ipmi - 错误:无法建立 IPMI v2 / RMCP+ 会话
- asp.net-mvc - 编辑后,ASP.NET MVC Razor 页面在另一个 Razor 页面中引发异常,直到下一次构建
- json - Spark sql 的 from_json 返回空值
- asp.net-mvc - 如何在 ASP.NET CORE 项目中添加用户自定义控件(Net 2.0 中开发的.dll)?
- python - 无法在 Heroku 中安装 Django 包
- node.js - 使用 actions-on-google node v2 请求承诺
- python-3.x - 在 Python 中的 smtplib.SMTP(“smtp.gmail.com”, 587) 期间超时