gpt4 book ai didi

delphi - 从idhttp获取字符串get

转载 作者:行者123 更新时间:2023-12-03 18:31:32 25 4
gpt4 key购买 nike

目前,我能够运行命令,但无法弄清楚如何将结果转换为字符串。

我像这样

idhttp1.get('http://codeelf.com/games/the-grid-2/grid/',TStream(nil));


而且一切似乎运行正常,在wireshark中,我可以看到该命令的结果。现在,如果我愿意

HTML := idhttp1.get('http://codeelf.com/games/the-grid-2/grid/');

它会冻结应用程序,在wireshark中,我可以看到它发送了GET并得到了响应,但不知道为什么它冻结了。 HTML只是一个字符串var。

编辑完整代码

单击按钮
login(EUserName.Text,EPassWord.Text);

    procedure TForm5.Login(name: string; Pass: string);
var
Params: TStringList;
html : string;
begin
Params := TStringList.Create;
try
Params.Add('user='+name);
Params.Add('pass='+pass);
Params.Add('sublogin=Login');


//post password/username
IdHTTP1.Post('http://codeelf.com/games/the-grid-2/grid/', Params);
//get the grid source
HTML := idhttp1.Get('http://codeelf.com/games/the-grid-2/grid/');

finally
Params.Free;
end;
llogin.Caption := 'Logged In';
end;


回应
我得到的答复说 Transfer-Encoding: chunked\r\nContent-Type: text/html\r\n不知道这是否重要。
谢谢

最佳答案

Indy支持某些类型的流HTTP响应(请参见New TIdHTTP hoNoReadMultipartMIME flag),但这仅在服务器使用multipart / *响应时才有用。链接的博客文章进一步解释了详细信息,还显示了Indy HTTP组件如何为MIME解码器提供连续的响应流。

如果这不适用于您的情况,一种解决方法是转到“原始” TCP层,这意味着使用TIdTCPClient组件发送HTTP请求,然后从命令行逐行(或逐字节)读取响应。 IOHandler。这样可以完全控制响应处理。应该在线程中处理请求和响应,以使其与主线程分离。

关于delphi - 从idhttp获取字符串get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25009174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com