'un ham isteği ve yanıt içeriği nasıl izlenir Delphi ve python kullanarak aynı kodu (bir form göndermek için) uygularım. Python kodu mükemmel çalışır, ancak delphi kodu başarısız olur. Python'da, sunucuya hangi içeriğin gönderildiğini görmek için httplib2.debuglevel=4
yazabilirim. ancak içeriği delphi'ye nasıl yazdıracağımı bilmiyorum.TIdHttp
def python_request_data(url, cookie, data):
httplib2.debuglevel = 4
conn = httplib2.Http()
conn.follow_all_redirects = True
headers = {'Cookie': cookie, 'Content-Type': 'application/x-www-form-urlencoded'}
response, contents = conn.request(url, 'POST', data, headers=headers)
procedure DelphiRequestData(const Url, Cookie, Data: string);
var
Client: TIdHttp;
Params: TStringList;
Response: string;
begin
Client := TIdHttp.Create(nil);
try
Client.HTTPOptions := [hoKeepOrigProtocol];
Client.Request.CustomHeaders.AddValue('Cookie', Cookie);
Params := TStringList.Create;
try
Params.QuoteChar := #0;
Params.Delimiter := '&';
Params.DelimiterText := Data;
Client.Request.ContentType := 'application/x-www-form-urlencoded';
Client.Request.ContentLength := Length(Params.DelimitedText);
Response := Client.Post(Url, Params);
finally
Params.Free;
end;
finally
Client.Free;
end;
end;
Herhangi bir ipucu kabul edilir.
@bummi'nin ipuçlarını için teşekkürler. Günlüğü gördükten sonra, Client.HTTPOptions: = [hoKeepOrigProtocol] değerini ayarlamadıkça, TIdHttp yanlış bir protokol sürümü göndermiş olduğunu gördüm. – stanleyxu2005