HTTPS пост не работает - PullRequest
       20

HTTPS пост не работает

0 голосов
/ 06 июля 2018

Я делаю сообщение HTTPS с этим кодом на веб-сайтах Azure. 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 Сброс соединения по пиру.

Я попытался сделать простую HTTPS-публикацию, используя .NET с HttpWebRequest, и она отлично работает. Что я тут не так делаю?

1 Ответ

0 голосов
/ 09 июля 2018

Я просто сдался и вместо этого использовал WinApi.WinInet.

...