使用Indy发布数据并将其接收到TWebBrowser

CRQ*_*CRQ 4 browser delphi indy

我试图用这段代码将数据发布到bing

function PostExample: string;
var
  lHTTP: TIdHTTP;
  lParamList: TStringList;
begin
  lParamList := TStringList.Create;
  lParamList.Add('q=test');

  lHTTP := TIdHTTP.Create(nil);
  try
    Result := lHTTP.Post('http://www.bing.com/', lParamList);
  finally

    FreeAndNil(lHTTP);
    FreeAndNil(lParamList);

  end;
end;
Run Code Online (Sandbox Code Playgroud)

然后,我如何将结果输出到TWebBrowser并显示它?

kob*_*bik 7

试试LoadDocFromString:

procedure LoadBlankDoc(ABrowser: TWebBrowser);
begin
  ABrowser.Navigate('about:blank');
  while ABrowser.ReadyState <> READYSTATE_COMPLETE do
  begin
    Application.ProcessMessages;
    Sleep(0);
  end;
end;

procedure CheckDocReady(ABrowser: TWebBrowser);
begin
  if not Assigned(ABrowser.Document) then
    LoadBlankDoc(ABrowser);
end;

procedure LoadDocFromString(ABrowser: TWebBrowser; const HTMLString: wideString);
var
  v: OleVariant;
  HTMLDocument: IHTMLDocument2;
begin
  CheckDocReady(ABrowser);
  HTMLDocument := ABrowser.Document as IHTMLDocument2;
  v := VarArrayCreate([0, 0], varVariant);
  v[0] := HTMLString;
  HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
  HTMLDocument.Close;
end;
Run Code Online (Sandbox Code Playgroud)