HTTPS发布不起作用

时间:2018-07-06 13:37:08

标签: delphi ssl post https indy

我正在使用此代码向azurewebsites进行HTTPS发布。 http://MYAPP.azurewebsites.net/api/MYFUNC

我当前正在使用此代码:

procedure TForm1.OriginalTest();
var
  lHTTP: TIdHTTP;
  HTTPResult: string;
  RequestBody: TStream;
  URL: String;
  Body: string;
  IOHandler: TIdSSLIOHandlerSocketOpenSSL;

begin
  lHTTP := TIdHTTP.Create;
  try
    Body := '{}';
    RequestBody := TStringStream.Create(Body, TEncoding.UTF8);
    lHTTP.Request.Accept := '';
    lHTTP.Request.UserAgent := '';

    lHTTP.Request.CustomHeaders.Add('x-functions-key:<your api key>');
    lHTTP.ConnectTimeout := 24000;
    lHTTP.ReadTimeout := 24000;
    IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    IOHandler.SSLOptions.Method := sslvTLSv1_2;

    lHTTP.IOHandler := IOHandler;
    try
      URL := 'https://<yourapp>.azurewebsites.net/api/<funcname>';

      HTTPResult := lHTTP.Post(url, RequestBody);

      Memo1.Lines.Add(HTTPResult);
    except
      on E:Exception do
      begin
        Memo1.Lines.Add(Format('Error sending data. Error: %s', [E.Message] ));
      end;
    end;
  finally
    lHTTP.Free;
    RequestBody.Free;
  end;
end;

无论出于何种原因,这段代码都会给我以下错误:

  

发送数据时出错。错误:套接字错误#10054对等连接重置。

我尝试使用.NET和HttpWebRequest编写一个简单的HTTPS Post,并且效果很好。我在这里做什么错了?

1 个答案:

答案 0 :(得分:0)

我只是放弃了而改用WinApi.WinInet。