<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式環(huán)境下Web Service技術(shù)的實(shí)現(xiàn)

          嵌入式環(huán)境下Web Service技術(shù)的實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-21 來源:網(wǎng)絡(luò) 收藏

          SOAP在HTTP上的遠(yuǎn)程調(diào)用的具體過程大致如下:客戶端通過SOAP工具生成基于XML文檔的SOAP消息,在該SOAP消息里包含有客戶請(qǐng)求的服務(wù)名稱及調(diào)用服務(wù)程序所需的參數(shù),并使用HTTPPOST方法通過網(wǎng)絡(luò)向應(yīng)用程序所在的服務(wù)端發(fā)送SOAP請(qǐng)求;另一方面,當(dāng)服務(wù)端接到HTTP信息之后,又從中提取出SOAP消息,啟動(dòng)XML文檔解析器進(jìn)行解析,獲取客戶需要調(diào)用的方法名及其參數(shù),以此來調(diào)用相應(yīng)的服務(wù)程序,之后以類似的方法將運(yùn)行結(jié)果打包成SOAP消息返回給客戶,完成應(yīng)用程序的遠(yuǎn)程調(diào)用。
          2.2.1 HTTP協(xié)議的簡單
          HTTP是基于請(qǐng)求/響應(yīng)模式的協(xié)議,客戶端的通信過程一般分為4個(gè)步驟:建立連接、發(fā)送請(qǐng)求消息、接收響應(yīng)信息、關(guān)閉連接。HTTP定義了眾多請(qǐng)求方法(Method),如GET,POST,HEAD,DELETE等,由于SOAP主要使用POST方法來發(fā)送請(qǐng)求,因此HTTP的集中在POST方法上。SOAP協(xié)議中規(guī)定POST請(qǐng)求至少包含兩個(gè)HTTP頭,Content-Type(定義MIME類型)和Content-Length(定義消息的長度)。
          例如:
          POST/test HTTP/1.1
          Content-Type:application/soap+xml;
          Content-Length:250
          如圖2所示,程序利用1wIP提供的API創(chuàng)建一個(gè)監(jiān)聽連接,綁定到HTTP的80號(hào)熟知端口上,當(dāng)接收到POST請(qǐng)求時(shí)檢查必要的HTTP頭,之后開始接收HTTP正文(SOAP請(qǐng)求),并將接收到的請(qǐng)求存放在預(yù)先開辟的緩沖區(qū)中,再交由XML解析器處理。為了節(jié)省資源,將SOAP消息解析和HTTP接收放在同一線程,一次只處理一個(gè)SOAP請(qǐng)求,因此整個(gè)解析過程只需要一個(gè)緩沖區(qū)。同時(shí)開啟連接超時(shí)機(jī)制,如果客戶端連接后長時(shí)間無動(dòng)作,接收程序?qū)⑶袛噙B接,避免后續(xù)請(qǐng)求無法得到響應(yīng)。

          本文引用地址:http://www.ex-cimer.com/article/149382.htm

          d.JPG

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          c++相關(guān)文章:c++教程




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();