我正在使用此代码向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,它工作正常。我在这里做错了什么?

最佳答案

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

10-07 20:59