delphi - 在 Delphi 中尝试使用 Indy 10.6.2 访问 HTTP 服务器时出现 403 错误
问题描述
我尝试与一项服务通信,但我经常收到 403 错误。当我尝试 SoapUI 时,传递查询没有问题。我哪里错了?
我使用 openssl-1.0.1c-x64_86-win64。
var
urlADR, resTXT, resp_CMD, json : string;
IdHTTP : TIdhttp;
IdSSLIO : TIdSSLIOHandlerSocketOpenSSL;
JsonToSend : TStringStream;
respCode : Integer;
begin
urlADR := 'https://mvr.bg/webservices/api/Document/CheckDocument';
Json := '{"documentKindCode":"6729","documentNumber":"123456789","birthsday":"01.01.1977"}';
JsonToSend := TStringStream.Create(Utf8Encode(Json)); // D2007 and earlier
IdSSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(self);
IdHTTP := TIdhttp.Create(self);
try
IdSSLIO.Host := 'mvr.bg';
IdSSLIO.SSLOptions.SSLVersions := [sslvTLSv1_2];
with IdHTTP do begin
IOHandler := IdSSLIO;
Request.ContentType := 'application/json';
Request.AcceptEncoding := 'gzip,deflate';
Request.Connection := 'Keep-Alive';
Request.Host := 'mvr.bg';
Request.CharSet := 'utf-8';
resp_CMD := POST( urlADR, JsonToSend );
end;
ShowMessage(resp_CMD);
finally
IdSSLIO.Free;
IdHTTP.Free;
JsonToSend.Free;
end;
解决方案
推荐阅读
- java - 树莓派上的 PWM 频率总是很低
- android - 使用 Dagger2 将适配器类注入片段
- android - 我的 Android 设备不会使用 tns preview 扫描 CLI 中生成的 QR 码
- mongodb - 带有嵌套值的 Meteor Upsert 语法
- javascript - 物体碰撞时玩家和“激光”消失
- haskell - 上下文中的约束如何改变 Haskell 中的实例解析
- twitter - 在 tweepy 中使用 extended_entities 时遇到问题
- sql - SQL Server,连接到具有相同列的多个表
- python - 使用python向sql server发送数据
- java - 双冒号 :: java 8 以下内容如何工作