XML-RPC初學 第一篇

近期開始瞭解XML-RPC,並且嘗試着去了解這個技術。從網上頁找了很多資料,也做了一些例子。在此就把這段時間的積累寫下來,大家分享

1、什麼是 XML-RPC
      首先 RPC 叫做遠程過程調用,那麼,XML-RPC可以理解爲,採用了XML描述的遠程過程調用。也就是說,遠程過程調用
               用XML來表示。
      其次 既然是遠程過程調用,那麼就需要進行遠程訪問,採用HTTP協議,可以做的很好,分爲客戶端/服務器端
      遠程過程,實際上就是客戶端,提交相應的方法請求以及參數,服務器端做出處理,並且返回結果

2、方法請求
      1)採用POST方式提交請求
      2)HTTP頭字段 Content-Type 內容 必須是 text/xml
      3)HTTP頭字段 Content-Length 內容,是提交的數據長度
      4)方法請求,假設 調用的方法名稱是,example.echo,方法參數是一個字符串,返回的結果是 一個相同的字符串
            請求部分:
                    <?xml version="1.0" encoding="UTF-8"?>
                    <methodCall>
                          <methodName>example.echo</methodName>
                          <params>
                               <param>
                                      <value>
                                           <string>Hello, I call the remote service</string>
                                      </value>
                               </param>
                          </params>
                    </methodCall> 
            注意 XML-RPC 的解析,生成都是區分大小寫的,因此,必須按照上面的大小寫方式,尤其是 methodCall methodName

3、方法響應
      1)方法在POST請求後,會返回
      2)返回的Content-Type爲text/xml
      3)方法返回部分
              <?xml version="1.0" encoding="UTF-8"?>
              <methodResponse>  <!-- 區分大小寫 -->
                   <params>
                        <param>
                            <value>
                                 <string>Server echo: Hello, I call the remote service </string>
                            </value>
                        </param>
                   </params>        
              </methodResponse>
       4)對於返回內容,一共有兩種形式,一種是 正確返回,一種是返回錯誤,對於返回值,
                  methodResponse 只能夠含有一個 params,一個params只能含有一個 param,一個param只能含有一個value
       5)返回出錯信息方式
                <methodResponse>
                    <fault>
                       <value>
                           <struct>
                              <member>
                                   <name>faultCode</name>
                                   <value>
                                       <i4>32</i4>
                                   </value>
                              </member>
                              <member>
                                    <name>faultString</name>
                                    <value>
                                       <string>Parameter is too short , need type</string>
                                    </value>
                              </member>
                           </struct>
                       </value>
                    </fault>
                </methodResponse>
              這個方式返回一個 Hashtable 包含了錯誤代碼和錯誤信息

4、參考
      1)XML-RPC http://www.xmlrpc.com
      2)竹筍炒肉   http://hedong.3322.org/archives/000470.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章