7

私はdelphiとpythonを使用して(フォームを投稿するために)同じコードを実装しました。Pythonコードは完全に機能しますが、Delphiコードは失敗します。httplib2.debuglevel=4Pythonでは、サーバーに実際に送信されたコンテンツを確認するために簡単に書き込むことができます。しかし、デルファイでコンテンツを印刷する方法がわかりません。

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;

ヒントは大歓迎です。

4

1 に答える 1

6

IdHttpのインターセプトとしてTIdLogDebugを使用できます。
イベントOnSendおよびOnReceiveは、必要な情報を配列またはTByteで配信します。

于 2012-12-23T15:13:38.663 に答える