2016-11-18 9 views
0

次のDelphiコードを使用して、JIRAの問題の添付ファイルのコンテンツをダウンロードしています。アクセス拒否の送信要求が発生しています。XMLHTTPRequest.Sendのアクセス拒否エラー

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; 

答えて

-1

あなたは

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; 
を以下のように、標準のDelphiのHttpClientを使用することができます任意のセキュリティ証明書関連の問題です
関連する問題