• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
            簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            VC6開(kāi)發(fā)Web Services 客戶(hù)端

            Posted on 2009-10-19 16:35 S.l.e!ep.¢% 閱讀(396) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): SOAP
            VC6開(kāi)發(fā)Web ? Services ? 客戶(hù)端 ? ?
            ? 下面是個(gè)控制臺(tái)的樣例 ?
            ? Toolkit3.0 ? 終于給出VC6的樣例了,1.0只能看到VB和ASP的 ?
            ? ?
            ? ?
            ? #include ? <stdio.h> ?
            ? ?
            ? #import ? "msxml4.dll" ? ?
            ? using ? namespace ? MSXML2; ?
            ? ?
            ? #import ? "C:\Program ? Files\Common ? Files\MSSoap\Binaries\mssoap30.dll" ? \ ?
            ? ? ? ? ? ? ? ? ? ? ? ? ? exclude("IStream", ? "IErrorInfo", ? "ISequentialStream", ? "_LARGE_INTEGER", ? \ ?
            ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "_ULARGE_INTEGER", ? "tagSTATSTG", ? "_FILETIME") ?
            ? using ? namespace ? MSSOAPLib30; ? ? //你機(jī)器得安裝SOAP ? Toolkit3.0 ? ,1.0時(shí),用using ? namespace時(shí)報(bào)錯(cuò) ?
            ? ?
            ? ?
            ? void ? Add() ?
            ? { ?
            ? ? ? ? ISoapSerializerPtr ? Serializer; ?
            ? ? ? ? ISoapReaderPtr ? Reader; ?
            ? ? ? ? ISoapConnectorPtr ? Connector; ?
            ? ? ? ? // ? Connect ? to ? the ? service. ?
            ? ? ? ? Connector.CreateInstance(__uuidof(HttpConnector30)); ? ? //HttpConnector30 ? 失敗,無(wú)法這樣創(chuàng)建Connector,CXX0017 ? Error ? :Symbol ? “HttpConnector30“ ? not ? found(搖頭、嘆氣!) ?
            ? ? ? ? Connector->Property["EndPointURL"] ? = ? "http://MyServer/Soap3DocSamples/DocSample1/Server/DocSample1.wsdl"; ? ? //這個(gè)當(dāng)然得改成您自己的拉 ?
            ? ? ? ? Connector->Connect(); ?
            ? ?
            ? ? ? ? // ? Begin ? the ? message. ?
            ? ? ? ? //Connector->Property["SoapAction"] ? = ? "uri:AddNumbers"; ?
            ? ? ? ? Connector->Property["SoapAction"] ? = ? "http://tempuri.org/DocSample1/action/Sample1.AddNumbers"; ?
            ? ? ? ? Connector->BeginMessage(); ?
            ? ?
            ? ? ? ? // ? Create ? the ? SoapSerializer ? object. ?
            ? ? ? ? Serializer.CreateInstance(__uuidof(SoapSerializer30)); ?
            ? ?
            ? ? ? ? // ? Connect ? the ? serializer ? object ? to ? the ? input ? stream ? of ? the ? connector ? object. ?
            ? ? ? ? Serializer->Init(_variant_t((IUnknown*)Connector->InputStream)); ?
            ? ?
            ? ? ? ? // ? Build ? the ? SOAP ? Message. ?
            ? ? ? ? Serializer->StartEnvelope("","",""); ?
            ? ? ? ? Serializer->StartBody(""); ?
            ? ? ? ? Serializer->StartElement("AddNumbers","http://tempuri.org/DocSample1/message/","",""); ? ? //這是本地的Web ? Services,實(shí)際中要指定命名空間 ?
            ? ? ? ? Serializer->StartElement("NumberOne","","",""); ?
            ? ? ? ? Serializer->WriteString("5"); ?
            ? ? ? ? Serializer->EndElement(); ?
            ? ? ? ? Serializer->StartElement("NumberTwo","","",""); ?
            ? ? ? ? Serializer->WriteString("10"); ?
            ? ? ? ? Serializer->EndElement(); ?
            ? ? ? ? Serializer->EndElement(); ?
            ? ? ? ? Serializer->EndBody(); ?
            ? ? ? ? Serializer->EndEnvelope(); ?
            ? ? ? ? ?
            ? ? ? ? // ? Send ? the ? message ? to ? the ? XML ? Web ? service. ?
            ? ? ? ? Connector->EndMessage(); ? ? ? ? ? ? ?
            ? ?
            ? ? ? ? // ? Read ? the ? response. ?
            ? ? ? ? Reader.CreateInstance(__uuidof(SoapReader30)); ?
            ? ?
            ? ? ? ? // ? Connect ? the ? reader ? to ? the ? output ? stream ? of ? the ? connector ? object. ?
            ? ? ? ? Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), ? ""); ?
            ? ?
            ? ? ? ? // ? Display ? the ? result. ?
            ? ? ? ? printf("Answer: ? %s\n", ? (const ? char*)Reader->RpcResult->text); ?
            ? ? ? ? ? ?
            ? } ?
            ? ?
            ? int ? main() ?
            ? { ?
            ? ? ? ? CoInitialize(NULL); ?
            ? ? ? ? Add(); ?
            ? ? ? ? CoUninitialize(); ?
            ? ? ? ? return ? 0; ?
            ? } ?
            ? ?
            ? 更改 ? EndPointURL ? 屬性的值. ? 在URL里指定你的服務(wù)器名. ? ?
            ? ?
            ? OK ?
            ? ?
            ? 總結(jié)一下必要的關(guān)鍵步驟 ?
            ? 1.導(dǎo)入類(lèi)型庫(kù) ?
            ? ?
            ? 2.需要?jiǎng)?chuàng)建一個(gè)SoapConnector ?
            ? ?
            ? 3.下一步創(chuàng)建SoapSerializer ?
            ? ?
            ? 4.下一步把消息附加到SoapConnector的輸入流 ?
            ? ?
            ? 5.下一步讀取結(jié)果.要讀取服務(wù)器的回復(fù),客戶(hù)端應(yīng)用需要使用SoapReader, ?
            ? ?
            ? 6.SoapReader被連接到SoapConnector輸出流 ?
            ? ?
            ? 7.用IXMLDOMElement對(duì)象可以從SoapReader里讀到服務(wù)器的回復(fù)??

            ?

            国产69精品久久久久99尤物| 亚洲AV无码1区2区久久| 久久人妻少妇嫩草AV无码专区| 久久精品成人| 久久综合狠狠综合久久97色| 久久久噜噜噜久久中文字幕色伊伊 | 久久99热只有频精品8| 99精品久久精品| 国内精品久久久久久久久电影网 | 久久婷婷成人综合色综合| 99999久久久久久亚洲| 久久久久97国产精华液好用吗| 久久无码AV一区二区三区| 91久久精一区二区三区大全| 亚洲精品NV久久久久久久久久 | 色综合久久88色综合天天 | 国产精品VIDEOSSEX久久发布| 亚洲国产二区三区久久| 99精品久久久久久久婷婷| 18岁日韩内射颜射午夜久久成人| 久久免费视频1| 偷偷做久久久久网站| 九九热久久免费视频| 亚洲精品无码久久久久sm| 久久久久国产一区二区三区| 69久久精品无码一区二区| 国产A三级久久精品| 久久精品国产亚洲AV忘忧草18| 伊人久久大香线蕉综合5g| 国产精品亚洲综合专区片高清久久久| 精品综合久久久久久97超人| 亚洲精品午夜国产VA久久成人| 国产色综合久久无码有码| 久久这里只有精品18| 国产精品99久久99久久久| 99久久精品午夜一区二区| 国产无套内射久久久国产| 日韩十八禁一区二区久久| 少妇久久久久久久久久| 久久久久久亚洲精品不卡| 亚洲中文字幕无码一久久区|