2010-12-16 17 views
3

私はDelphi 2010で1つのWebサービスを使用しようとしています。 このWebサービスは、認証でポート8000​​にあります。認証でWebサービスを消費しています。認証が必要です。

私は

function TForm4.EncodeLoginPW(const ALogin, APW: string): string; 
begin 
    Result := EncdDecd.EncodeString(ALogin + ':' + APW); // EncdDecd is not documented in 
end; 


procedure TForm4.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; 
    Data: Pointer); 
var 
    s: string; 
begin 
    s := 'Authorization: Basic ' + EncodeLoginPW(UserName, Password); 
    if not HttpAddRequestHeaders(Data, PChar(s), Length(s), HTTP_ADDREQ_FLAG_ADD) then 
    ShowMessage('HttpAddRequestHeaders' + SysErrorMessage(GetLastError())); 
end; 

を実装するが、私はまだメッセージ "認証に必要な" を持っています。

何か問題がありますか?

+1

どの認証タイプですか? URLとポートを指定してウェブブラウザからリクエストを正常に実行できますか? – mjn

+0

反認証タイプは基本的です。 –

+0

ウェブブラウザからサービスURLに「手動」リクエストを実行できますか? (ブラウザは通常、認証を求めます) – mjn

答えて

2

基本認証のために、これは動作するはずです:

Basic Authentication in Delphi 7 SOAP

としてはthis postに説明し、デルファイの新しいバージョンをも、それはまだ動作しない場合

HTTPRio.HTTPWebNode.UserName := Username; 
HTTPRio.HTTPWebNode.Password := Password; 
+0

私はBeforePostイベントの前にこれを試しました... –

0

を使用することができ、あなたが試すことができます別のクライアント(.NetまたはJava)を使用し、HTTPトラフィックをローカルプロキシ(FiddlerまたはDon's Proxy)またはスニッファ(WireShark)のヘルプと比較して、関連する差分ces。

+0

私はdotnetとRemoteObject SDKにも問題があります: –

関連する問題