2011-09-15 25 views
0

我正在使用Drupal爲我的android應用程序創建一個web服務。 我對Drupal有基本的瞭解,如啓用模塊,主題,配置它們; 但是這個「服務」模塊是我不能得到的頭。 我下載服務6.2和啓用的服務模塊和節點服務模塊只是不能集成DRUPAL和ANDROID

現在,當我瀏覽到網站建設 - >服務 - > node.get 我得到了我可以進入節點ID和字段的表格,這是工作正常。

但我不知道如何從android獲得響應。 我還沒有啓用xmlRPC服務器。 我已啓用匿名用戶訪問服務頁面,以便我不需要獲得身份驗證或會話ID。

基本上我只是想看看在我的日誌貓在eclipse sdk只爲節點1 的響應,我將被設置爲從那一點。

回答

2

服務模塊允許使用遠程協議(xmlrpc,soap,rest等)與Drupal溝通第三方應用程序。

要使用它,您需要定義至少一個端點。設置名稱,協議,允許的資源(節點,用戶,文件,註釋等)。

例如,定義xmlrpc端點。 然後,您可以從Android上的xmlrpc客戶端調用它。

XML-RPC公開一組遠程方法,最有趣的是:

  • user.login - 記錄在用戶,它需要用戶名和密碼作爲參數
  • user.logout - 註銷

節點CRUD操作:

  • node.retrieve - 檢索
  • node.create - 創建一個新的節點
  • node.update - 更新現有節點
  • node.delete - 刪除節點
  • node.index - 獲取節點

同樣的CRUD方法的列表對於其他Drupal對象(文件,註釋,用戶,taxonomy_terms)而言,僅將「節點」替換爲對象名稱。 例如:「file.create」 - 創建文件,「file.index」 - 檢索文件列表等

如果您需要授權,則需要先調用「user.login」,如果調用成功, 存儲返回的方法結構的sessid和session_name值。

然後送價值

session_name+"="+sessid 

如餅乾中的所有後續調用識別會話。另外,您必須在Drupal服務端點配置中啓用「會話認證」複選框。沒有它,所有對端點的請求將作爲匿名用戶執行。

要創建自己的xmlrpc服務,需要在模塊中定義hook_xmlrpc,並公開一組方法。

+0

再次調用node.get;請在您的答案中不要包含這樣的簽名或鏈接到您的博客。 –

+0

我的博客文章包含有關如何配置服務模塊的更多信息。我無法在此處發送屏幕截圖和詳細文本。這就是爲什麼,我添加了一個鏈接(不適用於垃圾郵件)。 –

+0

我看了你的博客文章;如果那些信息在那裏,那很難找到。 –

0

我不確定這是您正在尋找的內容,但您可以使用HttpClient訪問您的服務。有關更多幫助,請參閱this答案。由於我不是Drupal專家,因爲您已啓用這些「服務」模塊,所以我不確定是否需要啓用或禁用xmlRPC。通過一點研究(here),我發現了一些有用的信息,基本上說在Drupal上啓用xmlRPC,並將XML-RPC客戶端導入到您的Android應用程序中以開始使用它。

+0

我不這麼認爲,所以我應該使用它的httpclient方法。我非常熟悉XML解析和東西,我可以像www.myurl.com/api.php?¶m1=value1¶m2=value2這樣的網址一起玩,但是這個東西是不同的。這就像調用像www.myurl.com這樣的url,然後分別以某種方式調用一個方法,比如像node.get和分別在參數中一樣。所有這一切都不是在一個簡單的URL :(否則生活武漢已經很容易 – abhishek

+0

嘿傢伙我已經找到了這個鏈接http://civicactions.com/blog/2010/may/02/tutorial_code_developing_apps_iphoneipadandroid_using_drupal_base_system請檢查和評論 – abhishek

+0

node.get是可能只是一個url。像mysite.com/node.get - 它可能會期望一個POST數據 – Jack

0

請參閱http://drupal.org/node/783722http://drupal.org/node/790416的服務文檔以獲取一些示例幫助您入門。我發現這些介紹瞭如何設置和使用服務模塊。

+0

我需要啓用任何服務器模塊??因爲我看到node.get()方法在drupal框架中工作正常並給我的數據,我真的想要。如果我不想去複雜,只是啓用服務模塊和節點服務,然後我創建一些urlConnection與網址http://mydomain.com/drupal-6.19/admin/build /服務,然後調用node.get方法??也一旦連接建立我怎麼可能觸發方法node.get莫名其妙? – abhishek

+0

嘿傢伙你可以檢查此鏈接http://civicactions.com/blog/2010/may/ 02/tutorial_code_developin g_apps_iphoneipadandroid_using_drupal_base_system我必須做類似和簡單的事情,但不知道如何從url – abhishek