【问题标题】:Access Denied error in XMLHTTPRequest.SendXMLHTTPRequest.Send 中的访问被拒绝错误
【发布时间】:2016-11-18 06:04:29
【问题描述】:

我正在使用以下 Delphi 代码下载 JIRA 问题的附件内容。发送请求引发访问被拒绝的异常。是否有任何安全证书相关问题:

class function TnsXmlHttpReq.GetRequestForStream(const p_Url, p_UsrName,
  p_Password: String; out p_Status: Integer): TMemoryStream;
var
  LBody : OleVariant;
  Stream: IStream;
  OleStream: TOleStream;
begin
  Result:= nil;
  p_Status:= 0;

  if FHttpRequest = nil then
    FHttpRequest:= CoXMLHTTPRequest.Create;

  FHttpRequest.open('GET', p_Url, false, p_UsrName, p_Password);
  FHttpRequest.setRequestHeader('X-Atlassian-Token', 'no-check');
  FHttpRequest.setRequestHeader('Authorization','Basic '+EncodeBase64(p_UsrName+':'+p_Password));
  FHttpRequest.setRequestHeader('Cache-Control', 'no-cache');


  //send request
  FHttpRequest.send('');

  p_Status:= FHttpRequest.status;

  if FHttpRequest.status <> 200 then
    Exit;

  Result:= TMemoryStream.Create;
  Stream := IUnknown(FHttpRequest.ResponseStream) as IStream;
  OleStream := TOleStream.Create(Stream);
  try
    OleStream.Position := 0;
    Result.CopyFrom(OleStream, OleStream.Size);
  finally
    OleStream.Free;
  end;//try..finally...
end;

【问题讨论】:

    标签: delphi


    【解决方案1】:

    您可以使用标准的 Delphi HttpClient 如下

    uses System.Net.HttpClient;
    
    function GetAttachment(const AURL: string; const AUserName: string;
      const APassword: string): TStream;
    var
      HttpClient: THttpClient;
      BasicAuth: string;
    begin
      HttpClient := THttpClient.Create;
      try
        Result := TMemoryStream.Create;
        BasicAuth := TRESTHTTPProcs.CreateBasicAuthenticationString('', AUserName, APassword);
        HttpClient.Get(AURL, Result, TNetHeaders.Create(
          TNameValuePair.Create('X-Atlassian-Token', 'nocheck'),
          TNameValuePair.Create(HTTP_HEADERFIELD_AUTH, BasicAuth)
          ));
      finally
        HttpClient.Free;
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 2012-12-21
      • 2010-12-23
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多