2013-06-20 47 views
0

我正在用CodeIgniter框架開發一個API。輸出XML文件|帶CodeIgniter的API

方案 -

  1. 我的應用程序將調用我的API與http://myapi.com/controler?parA=valA&parB=valB
  2. 我的控制器將_GET請求並處理它。
  3. 控制器將通過$this->load->view('response',$data, true)調用視圖。

我查看文件 -

Response.php

<response> 
    <status> 
     200 
    </status> 
    <mode> 
     VisaCreditCard 
    </mode> 
    <options> 
     <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" /> 
     <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/> 
     <option name="New Booking" url="http://myapi.com/controller/book_new" /> 
    </options> 
</response> 

請注意,標籤名稱是相同的,因爲我在我的應用程序正在使用雖然裏面的值是模糊的。這是因爲我想讓你注意到<options><option/>

問題

現在的問題是,當我打電話給我的API,CI會做所有的作業,然後給出了這一觀點,所有我得到的屏幕是

200 VisaCreditCard 

當我檢查查看頁面的源代碼我得到我想要的東西,即我在我的respons.php文件中的文本 期望值 我希望我的輸出中包含的源代碼在打電話時可見該網址。


服務器信息

  • 的Ubuntu 13.04

  • 的Apache2

  • PHP 5

  • 笨2.1.3(重寫PHP短標記 - FALSE &的.htaccess忽略的index.php)


+0

如果您的問題得到解決。考慮接受最好的答案。 – mrsrinivas

回答

0

幾乎7小時頭撞搜索,實驗和痛苦之後傳來的光。


我做了兩件事情,它被解決了。

  1. 在宣佈爲Content-Type:text/xml的標頭上設置。
  2. 省略第三個參數$this->load->view('response',$data)。現在

我的代碼是:

<?php header ("Content-Type:text/xml"); ?> 

<response> 
    <status> 
     200 
    </status> 
    <mode> 
     VisaCreditCard 
    </mode> 
    <options> 
     <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" /> 
     <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/> 
     <option name="New Booking" url="http://myapi.com/controller/book_new" /> 
    </options> 
</response> 

而且,不要忘記將&轉化爲&amp;,否則你會再次潛入錯誤。

+0

我聯繫你一個潛在的重複。如果您使用Codeigniter,我想這對您會有幫助。我通過將您的問題標題用作搜索字詞來找到它。 – hakre

+0

@hakre感謝您的通知。我已經刪除了

標籤,但沒有在這裏編輯我的答案。 –
                        
                            
    VenomVipes