我想從我的Delphi項目訪問ClickBank API,檢查客戶是否有有效的訂閱。通過Delphi的TIdHTTP訪問Clickbank API?
我找到了API文檔here,但沒有Delphi示例。所以我正在嘗試創建一個我自己的小例子,但是我不知道Indy的TIdHTTP。
任何人都可以指出我正確的方向,也許設立一個最小的例子嗎?
P.S:我試着看着C#示例,但是我不能將它移植到Delphi。
我想從我的Delphi項目訪問ClickBank API,檢查客戶是否有有效的訂閱。通過Delphi的TIdHTTP訪問Clickbank API?
我找到了API文檔here,但沒有Delphi示例。所以我正在嘗試創建一個我自己的小例子,但是我不知道Indy的TIdHTTP。
任何人都可以指出我正確的方向,也許設立一個最小的例子嗎?
P.S:我試着看着C#示例,但是我不能將它移植到Delphi。
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');
只要注意到它是HTTPS - 您還需要設置OpenSSL IOHandler來處理SSL。也許這是你的問題 - 你沒有所需的SSL庫。見http://stackoverflow.com/questions/1874677/indy-10-1-5-which-ssl-dlls-work – 2011-05-20 18:15:48
嗯,它不是一個Delphi庫?那麼我如何使用它與TIdHTTP?我是否需要在應用程序中包含OpenSSL.exe + dll? – Jeff 2011-05-20 19:05:48
我想通了,但是當我嘗試時我得到了一個403錯誤。 – Jeff 2011-05-20 19:12:29
看來Clickbank的API「只是」另一個REST API,並能夠返回JSON。因此,請查看SuperObject庫:http://www.progdigy.com/?page_id=6它是一個快速的JSON解析器,並附帶了有關如何使用Google搜索和Google搜索建議等REST服務的示例。 – 2011-05-20 14:41:32
會檢查出來,謝謝:) – Jeff 2011-05-20 16:50:59
請降低我的問題的人請證明一下嗎?如果我沒有理由,我不知道要改進什麼。 :) – Jeff 2011-05-20 16:51:30