当前位置:  开发笔记 > 编程语言 > 正文

Indy HTTP:读取403上的响应内容

如何解决《IndyHTTP:读取403上的响应内容》经验,为你挑选了1个好方法。

我在使用带有Google Contacts API的Indy HTTP(在Delphi中)时遇到问题.

请参阅以下页面上的"ClientLogin响应"部分:

http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html

当验证不正确或发生错误时,服务器返回403 ...正如预期的那样.但是,根据该文档,客户端需要的响应内容中存在信息,例如错误原因和验证码URL等.

问题是Indy IdHTTP组件在403上抛出异常,响应内容为空.到目前为止,我找不到这个内容.我尝试将调用包装在Post中...除了然后读取响应流,但它总是在403上清空.

我该怎么做呢?



1> kes..:

我找到了解决方案.看起来内容存储在EIdHTTPProtocolException的ErrorMessage字段中.

try 
   http.Post('https://www.google.com/accounts/ClientLogin', slReq);
except
   on E: EIdHTTPProtocolException do
      Memo1.Lines.Add(E.ErrorMessage);
end;

似乎可以做到这一点.

(顺便说一句,我使用的是Indy 9.我相信Indy 10很相似.)

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有