首页 > 解决方案 > 在 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;

标签: delphisslindy

解决方案


推荐阅读