在客户端和备忘录中获取 HTTP 命令

Get HTTP Command in client and MEMO

本文关键字:获取 HTTP 命令 备忘录 客户端      更新时间:2023-10-16

你好

我想使用"获取"命令,例如:

Get https://api.demo.website.com/api/2/public/something

这是公共信息,不需要身份验证。

当我在浏览器中使用 URL 时,我会收到正确的响应,在我的另一个软件中,我在下面复制粘贴此代码,始终在备忘录中显示平淡无奇的结果。

也许我会从头开始以避免错误,但是谁能告诉我这段代码是否有问题?

TMemoryStream *Response=new TMemoryStream;
TNameValueArray nva;
NetHTTPRequest1->URL=URLEdit->Text;
NetHTTPRequest1->Get(URLEdit->Text, Response, nva);
Memo1->Lines->LoadFromStream(Response);

Get()完成对 MemoryStream 的写入时,流的Position保留在流的末尾,因此没有可供 Memo 加载的数据。您需要将Position重置回开头,然后再将流加载到备忘录中:

NetHTTPRequest1->Get(URLEdit->Text, Response, nva);
Response->Position = 0; // <-- ADD THIS
Memo1->Lines->LoadFromStream(Response);