2016-07-27 7 views
1

idHTTPではなくNetHTTPClientを使用する方法、HTTPクライアントAPIの使用方法を示すインターネット上のリソースはほとんどありません。Delphi xeでHTTPクライアントAPIを使用する方法

私が試したもの:

var 
LHTTPClient: THTTPClient; 
P : TStrings; 
begin 
    LHTTPClient := THTTPClient.Create; 
    P := TStringList.Create; 
    try 
    Params.Add('test=' + Path); 
    Memo1.Lines.Text := NetHTTPClient1.Post('www.server.com', P).ContentAsString(); 
    finally 
    LHTTPClient.Free; 
    end; 
    end; 

を私のコード:

procedure TForm1.Start; 
var 
lHTTP: TIdHTTP; 
P: TStringList; 

begin 
lHTTP := TIdHTTP.Create(nil); 
P := TStringList.Create; 
try 
Params.Add('test=' + Path); 
try 
    Reply.Text := lHTTP.Post('www.server.com', P); 

    if AnsiContainsStr(Reply.Text, 'good') 
    then 
    begin 
    Memo1.Lines.Add(Path); 
    end; 

    Finally 
    end; 

end; 
end. 
+0

それはあなたがすでに試みられているコードを表示した場合より良いとして、あなたがそれに合わせて傾ける理由を説明するだろうあなたのコード。 –

+0

@RemyLebeau私が試したことを加えました.. – cyberdude

+0

@RemyLebeau私はあなたの答えを使用しましたが、jsonでないHTMLページ – cyberdude

答えて

2

どちらも、あなたの例の一つは、技術的に正しいです。あなたのURLは不完全で、変数名を誤って管理しています。

代わりにこれを試してみてください:

インディ:

procedure TForm1.Start; 
var 
    LHTTP: TIdHTTP; 
    Params: TStringList; 
begin 
    LHTTP := TIdHTTP.Create; 
    try 
    Params := TStringList.Create; 
    try 
     Params.Add('test=' + Path); 
     Memo1.Lines.Text := LHTTP.Post('http://www.server.com', Params); 
    finally 
     Params.Free; 
    end; 
    finally 
    LHTTP.Free; 
    end; 
end. 

NetHTTP:

procedure TForm1.Start; 
var 
    LHTTP: TNetHTTPClient; 
    Params: TStringList; 
begin 
    LHTTP := TNetHTTPClient.Create(nil); 
    try 
    Params := TStringList.Create; 
    try 
     Params.Add('test=' + Path); 
     Memo1.Lines.Text := LHTTP.Post('http://www.server.com', Params).ContentAsString; 
    finally 
     Params.Free; 
    end; 
    finally 
    LHTTP.Free; 
    end; 
end; 
+0

クッキー値を取得する方法は、 'LHTTP.CookieManager'に' CookieCollection'がありません? – cyberdude

+0

Embarcaderoの['TNetHTTPClient'](http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClientComponent.TNetHTTPClient)コンポーネントには[CookieManager](http://docwiki.embarcadero.com/Libraries/en)があります。 /System.Net.HttpClientComponent.TNetHTTPClient.CookieManager)プロパティとその['TCookieManager'](http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClient.TCookieManager)コンポーネントには[' Cookies' ](http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClient.TCookieManager.Cookies)プロパティを参照してください。 –

+0

'Cookie:= LHTTP.CookieManager.Cookies ['test'、 'www.server.com'];' guid me here .. – cyberdude

関連する問題