• Delphi TNetHTTPClient Authorization not working


    0

    I have the following C# code that works, ie. I get the expected result from the server.

    static async Task GetObjectInfo()
    {
      HttpClient httpClient = new HttpClient(new HttpClientHandler()
      {
        Credentials = new NetworkCredential('USERNAME', 'PASSWORD')
      });
                
      string requestUrl = "http://<ipaddress>/rest/api/info/9C145D739F73";
      Console.WriteLine("Url: " + requestUrl);
      HttpResponseMessage response = await httpClient.GetAsync(requestUrl);
      if (response.IsSuccessStatusCode)
      {
        string aresult = await response.Content.ReadAsStringAsync();
        Console.WriteLine(aresult);
      }
      else
      {
        Console.WriteLine(response.StatusCode);
      }
    }
    

    However, I need to do the same in Delphi (RAD Studio 10.3), but the server always responds with You do not have permission to view this directory or page.

    I used the TNetHTTPClient

    AUrl := 'http://<ipaddress>/rest/api/info/9C145D739F73';
    memResult.Lines.Text := NetHTTPClient1.Get(AUrl, nil).ContentAsString;
    

    and in the NetHTTPClient1AuthEvent I have

    procedure TForm1.NetHTTPClient1AuthEvent(const Sender: TObject;
      AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName,
      APassword: string; var AbortAuth: Boolean;
      var Persistence: TAuthPersistenceType);
    begin
      if AnAuthTarget = TAuthTargetType.Server then
        begin
          AUserName := 'USERNAME';
          APassword := 'PASSWORD';
        end;
    end;
    

    If I debug the code, the AnAuthTarget = TAuthTargetType.Server so the username and password is set. What can I try next?

  • 相关阅读:
    Celery
    mysql 8.0.12 创建并授权出现的问题
    request对象
    Haystack搜索框架
    Django的缓存机制
    跨域问题
    解析器
    url控制器与响应器
    学期总结
    C语言I博客作业09
  • 原文地址:https://www.cnblogs.com/Thenext/p/16055847.html
Copyright © 2020-2023  润新知