2011-05-20 51 views
2

我想從我的Delphi項目訪問ClickBank API,檢查客戶是否有有效的訂閱。通過Delphi的TIdHTTP訪問Clickbank API?

我找到了API文檔here,但沒有Delphi示例。所以我正在嘗試創建一個我自己的小例子,但是我不知道Indy的TIdHTTP。

任何人都可以指出我正確的方向,也許設立一個最小的例子嗎?

P.S:我試着看着C#示例,但是我不能將它移植到Delphi。

+0

看來Clickbank的API「只是」另一個REST API,並能夠返回JSON。因此,請查看SuperObject庫:http://www.progdigy.com/?page_id=6它是一個快速的JSON解析器,並附帶了有關如何使用Google搜索和Google搜索建議等REST服務的示例。 – 2011-05-20 14:41:32

+0

會檢查出來,謝謝:) – Jeff 2011-05-20 16:50:59

+0

請降低我的問題的人請證明一下嗎?如果我沒有理由,我不知道要改進什麼。 :) – Jeff 2011-05-20 16:51:30

回答

4

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。在Delphi中 - 一個快速演示是在窗體上放置一個TIdHTTP1客戶端,以及一個按鈕和一個備忘錄。然後單擊按鈕(其中xxx =您的開發人員密鑰,而yyy =你的API密鑰)做同樣的一個onclick - 設置兩個頭和執行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'); 
+1

只要注意到它是HTTPS - 您還需要設置OpenSSL IOHandler來處理SSL。也許這是你的問題 - 你沒有所需的SSL庫。見http://stackoverflow.com/questions/1874677/indy-10-1-5-which-ssl-dlls-work – 2011-05-20 18:15:48

+0

嗯,它不是一個Delphi庫?那麼我如何使用它與TIdHTTP?我是否需要在應用程序中包含OpenSSL.exe + dll? – Jeff 2011-05-20 19:05:48

+0

我想通了,但是當我嘗試時我得到了一個403錯誤。 – Jeff 2011-05-20 19:12:29