繁体   English   中英

IdHTTP.Get不等待答案

[英]IdHTTP.Get not waiting for answer

我在使用Idhttp.Get方法时遇到了一些问题。 我认为默认情况下它处于阻塞模式(等待答案进入下一行),但我只是看到它不等待答案进入另一行。 我在线程中使用它,但是我认为这不是问题。 代码是:

  IdHTTP1:= TIdHttp.Create(Application);
  IdHTTP1.ConnectTimeout:= 10000;
  IdHTTP1.Request.Clear;
  IdHTTP1.Request.BasicAuthentication:= true;
  IdHTTP1.Request.Username := Username;
  IdHTTP1.Request.Password := Password;
    try
      IdHTTP1.Get(PbxURL); **//this should STOP here and wait for answer don't?**
      HttpCode:= IdHTTP1.ResponseCode;
    except
      on E: EIdHTTPProtocolException do
        HttpCode := IdHTTP1.ResponseCode;
    end;
    if HttpCode=200 then
      Memo1.Lines.Append('Valid Get!');

因此,我只是注意到我没有获得正确的HttpCode值,因为在执行“ Get”方法之后,它只是继续执行而没有等待“ Get”完成。 我怎么解决这个问题??

您说您没有得到正确的HttpCode,这表明您正在获得HttpCode,这意味着Get方法已经等待了很长时间,直到获得结果为止。

如果您获得的响应代码是301,则应尝试设置HandleRedirects属性,以便它将使用返回的地址自动重新发出请求。 否则,您必须自己处理响应。

Get函数不会过早返回。 您误解了您所观察的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM