相关疑难解决方法(0)

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

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

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

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

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

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

我该怎么做呢?

delphi http indy

6
推荐指数
1
解决办法
3277
查看次数

在 Indy POST 后访问 JSON 数据

我很难知道如何访问 Indy POST 请求的响应。我将数据作为 JSON 或参数字符串发布。我使用 JSON 时的代码如下。

params := TStringList.Create;
try
  params.Text :=
    '{'
    + format ('"client_secret":"%s",', [FilesFrm.ClientSecret])
    + format ('"client_id":"%s",', [FilesFrm.ClientId])
    + '"grant_type":"authorization_code",'
    + '"redirect_uri":"http://localhost:8080",'
    + format ('"code":"%s"', [fCode])
    + '}';
  idLogFile1.Active := true;
  // Make sure it uses HTTP 1.1, not 1.0
  IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];
  IdHTTP1.Request.ContentType := 'application/json';
  IdHttp1.Request.Accept := 'application/vnd.hmrc.1.0+json';

  try
    result := IdHTTP1.Post (
      'https://test-api.service.hmrc.gov.uk/oauth/token',
      params);
  except
    on E: Exception do
    memo1.lines.add (E.ClassName + ': ' + E.message);
    end;

  memo1.Lines.add (result);
  memo1.Lines.add (idHTTP1.ResponseText); …
Run Code Online (Sandbox Code Playgroud)

delphi http indy

5
推荐指数
1
解决办法
2257
查看次数

标签 统计

delphi ×2

http ×2

indy ×2