【问题标题】:Accessing Clickbank API through Delphi's TIdHTTP?通过 Delphi 的 TIdHTTP 访问 Clickbank API?
【发布时间】:2011-08-29 15:45:40
【问题描述】:

我正在尝试从我的 Delphi 项目中访问 ClickBank API,以检查客户是否有有效的订阅。

我找到了 API 文档here,但没有 Delphi 示例。所以我正在尝试创建自己的小示例,但是我无法使用 Indy 的 TIdHTTP 来解决。

谁能指出我正确的方向,也许可以建立一个最小的例子?

P.S:我尝试查看 C# 示例,但无法将其移植到 Delphi。

【问题讨论】:

  • 看来 Clickbank api“只是”另一个 REST api 并且能够返回 JSON。因此,请查看 SuperObject 库:progdigy.com/?page_id=6 这是一个快速的 JSON 解析器,并附带有关如何使用 REST 服务(如 Google 搜索和 Google 搜索建议)的示例。
  • 请否决我的问题的人是否有正当理由?如果我没有理由,我不知道要改进什么。 :)
  • @Marjan - 查看了演示,但我真的不知道如何使用 Clickbank API 来做到这一点。您介意使用示例代码创建答案吗?那将是美妙的! :)
  • 抱歉,还有其他事情要做。
  • @Marjan - 别担心,我明白。 :)

标签: delphi httpwebrequest indy


【解决方案1】:

ClickBank 示例 C# 可在此处找到 https://sandbox.clickbank.com/api_12_examples/api_example.csharp

HttpWebRequest request = (HttpWebRequest)
    WebRequest.Create("https://api.clickbank.com/rest/1.2/orders/list");
request.Accept = "application/xml";
request.Headers.Add(HttpRequestHeader.Authorization,
        "<< DEVELOPER KEY >>:<< API KEY >>");
request.Method = "GET";

HttpWebResponse response = (HttpWebResponse) request.GetResponse();

PHP 版本是 https://sandbox.clickbank.com/api_12_examples/api_example.php

你会看到他们在这里没有做太多的设置......只是设置了两个标题并执行了一个 GET。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.clickbank.com/rest/1.2/orders/list");
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_GET, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Accept: application/xml",
        "Authorization: << DEVELOPER KEY >>:<< API KEY >>"));
$result = curl_exec($ch);
curl_close($ch);

在 Delphi 中 - 一个快速演示是在表单上放置一个 TIdHTTP1 客户端,以及一个按钮和一个备忘录。然后单击按钮(其中 xxx= 您的开发人员密钥和 yyy= 您的 api 密钥)执行相同操作 - 设置两个标题并执行 GET:

IdHTTP1.Request.Accept := 'application/xml';
IdHTTP1.Request.CustomHeaders.Add('Authorization: xxx:yyy');
Memo1.Text := IdHTTP1.Get('https://api.clickbank.com/rest/1.2/orders/list');

【讨论】:

  • 刚刚注意到它是 HTTPS - 您还需要设置 OpenSSL IOHandler 来处理 SSL。也许这是您的问题 - 您没有所需的 SSL 库。见stackoverflow.com/questions/1874677/…
  • 嗯,它不是 Delphi 库?那么如何将它与 TIdHTTP 一起使用呢?我需要在我的应用程序中包含 OpenSSL.exe + dll 吗?
  • @Jeff:阅读Indy docs - 有一整页专门用于将 SSL 与 Indy、IIRC 结合使用。但无论如何,如何配置 Indy SSL 将是一个完全不同的问题。
  • 我得到它的工作 - 似乎需要 API 密钥 aswell(即使我可以发誓我读到它不是必需的)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2013-02-06
  • 2014-04-01
  • 2016-01-08
  • 1970-01-01
  • 2011-12-28
  • 2012-02-01
相关资源
最近更新 更多