乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用Soap Toolkit調(diào)用WebService的一個(gè)問題

       希望蠟炬 2013-01-22

       分析過程:

      用soap toolkit的跟蹤工具M(jìn)SSoapT看一下,客戶端到底向WebService發(fā)送了什么數(shù)據(jù):

      <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="" xmlns:SOAP-ENV="http://schemas./soap/envelope/">
      <SOAP-ENV:Body SOAP-ENV:encodingStyle="">
      <SOAPSDK1:Add xmlns:SOAPSDK1="http:///" SOAP-ENV:encodingStyle="">
      <n1 SOAP-ENV:encodingStyle="">5</n1>
      <n2 SOAP-ENV:encodingStyle="">10</n2>
      </SOAPSDK1:Add>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

      再看看vs.NET調(diào)試中,IE瀏覽器發(fā)出的數(shù)據(jù)(模板):


      <?xml version="1.0" encoding="utf-8"?>
      <soap:Envelope xmlns:xsi="http://www./2001/XMLSchema-instance" xmlns:xsd="http://www./2001/XMLSchema" xmlns:soap="http://schemas./soap/envelope/">
      <soap:Body>
      <Add xmlns="http:///">
      <n1>int</n1>
      <n2>int</n2>
      </Add>
      </soap:Body>
      </soap:Envelope>

      區(qū)別在哪里?soaptoolkit的數(shù)據(jù)中,多了個(gè)encodingStyle屬性,盡管沒有制定值。我們想辦法屏蔽這個(gè)屬性。
      在SoapSerializer30的startElement方法中的參數(shù)中按照如下方式調(diào)用,可以不制定這個(gè)屬性。
      改代碼如下:


      ...
      Serializer->startElement("Add","http:///","NONE","");
      Serializer->startElement("n1","","NONE","");
      Serializer->writeString("5");
      Serializer->endElement();
      Serializer->startElement("n2","","NONE","");
      Serializer->writeString("10");
      Serializer->endElement();
      Serializer->endElement();
      ...


      但返回結(jié)果還是0,看來和encodingStyle無關(guān)。看看跟蹤情況:


      <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="" xmlns:SOAP-ENV="http://schemas./soap/envelope/">
      <SOAP-ENV:Body SOAP-ENV:encodingStyle="">
      <SOAPSDK1:Add xmlns:SOAPSDK1="http:///">
      <n1>5</n1>
      <n2>10</n2>
      </SOAPSDK1:Add>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

      問題解決:
      比較一下vs.net中發(fā)出的請(qǐng)求,差別在哪里?認(rèn)真看一下,n1和n2沒有指定命名空間,那么就指定一下吧。
      把代碼改成:


      Serializer->startElement("Add","http:///","NONE","");
      Serializer->startElement("n1","http:///","NONE","");
      Serializer->writeString("5");
      Serializer->endElement();
      Serializer->startElement("n2","http:///","NONE","");
      Serializer->writeString("10");
      Serializer->endElement();
      Serializer->endElement();

      測(cè)試結(jié)果正常了,返回15。

      看看這時(shí)候發(fā)出的xml數(shù)據(jù):
      <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="" xmlns:SOAP-ENV="http://schemas./soap/envelope/">
      <SOAP-ENV:Body SOAP-ENV:encodingStyle="">
      <SOAPSDK1:Add xmlns:SOAPSDK1="http:///">
      <SOAPSDK1:n1>5</SOAPSDK1:n1>
      <SOAPSDK1:n2>10</SOAPSDK1:n2>
      </SOAPSDK1:Add>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

      原因:

      也許是VS.NET的問題,也許是SoapToolKit的問題,也許是他提供的例子自身就有問題,也許是我的運(yùn)行環(huán)境有問題,當(dāng)然,更也許是我還沒有真正理解xml的命名空間或沒有正確使用WebService。


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多