2016-07-27 26 views
1

Wie man NetHTTPClient anstelle von idHTTP verwendet, gibt es einige Ressourcen im Internet zeigen, wie HTTP Client API zu verwenden, konnte ich nicht in meinen Code, irgendwelche Hilfe Jungs, dankeWie man HTTP Client API in Delphi xe

, was ich versucht habe:

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; 

mein Code:

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

Es wäre besser, wenn Sie den Code zeigen, haben Sie schon versucht, und erklären, warum Sie es passen kann nicht in dein Code. –

+0

@RemyLebeau Hinzugefügt, was ich versucht habe .. – cyberdude

+0

@RemyLebeau Ich habe deine Antwort verwendet, aber ich sollte eine JSON nicht HTML-Seite – cyberdude

Antwort

2

Keiner Ihrer Beispiele ist technisch korrekt. Ihre URLs sind unvollständig und Ihre Variablennamen werden falsch verwaltet.

Versuchen Sie stattdessen:

Indy:

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

Wie bekomme ich den Cookie-Wert, es gibt keine 'CookieCollection' in' LHTTP.CookieManager'? – cyberdude

+0

Embarcaderos ['TNetHTTPClient'] (http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClientComponent.TNetHTTPClient) Komponente hat einen [CookieManager] (http://docwiki.embarcadero.com/Libraries/en /System.Net.HttpClientComponent.TNetHTTPClient.CookieManager) -Eigenschaft, und die Komponente ['TCookieManager'] (http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClient.TCookieManager) hat ein [' Cookies' ] (http://docwiki.embarcadero.com/Libraries/en/System.Net.HttpClient.TookookManager.Cookies) Eigenschaft. –

+0

'Cookie: = LHTTP.CookieManager.Cookies ['Test', 'www.server.com'];' Führe mich hier ... – cyberdude