我正在使用idhttp (Indy)进行网站检查。我只想检查发送请求后服务器的响应代码,而不需要实际接收服务器返回的HTML输出,因为我只监视200 OK代码,其他代码都表示存在某种问题。
我查阅了idhttp帮助文档,唯一可能实现这个功能的方法是将代码分配给MemoryStream
,然后立即清除它,但这不太高效并且使用了不必要的内存。有没有更有效且不浪费内存的方法来调用站点并获取响应但忽略返回的HTML?
当前的代码大致如下。但这只是样例代码,我还没有测试过,我只是用它来解释我的意图。
Procedure Button1Click(Sender: TObject);
var
http : TIdHttp;
s : TStream;
url : string;
code : integer;
begin
s := TStream.Create();
http := Tidhttp.create();
url := 'http://www.WEBSITE.com';
try
http.get(url,s);
code := http.ResponseCode;
ShowMessage(IntToStr(code));
finally
s.Free();
http.Free();
end;
100
)的响应,我们需要再尝试一次,对吗? - NaNTIdHTTP
会为您内部处理100
。不,这不是重试的指示。只有当客户端发送Expect: 100-Continue
标头时才使用100
,这允许客户端仅发送请求标头,然后等待100
再发送 POST 正文。这样,如果服务器决定拒绝请求,则不会浪费带宽。 - Remy Lebeau