欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

解析.NET調PHP Web Service的典型例子_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:淺析8月編程語言榜:.Net前景如何?
Tiobe近日公布了2009年8月的編程語言排行榜,51CTO注意到本期榜單中有Objective-CHE第一次進入前二十名并取代之前的Lua,而Java、C、C 依然以絕對優勢占據前三甲的位置。本期我們將重點關注微軟的.NET平臺,以及新近推出的F#、Small Basic語言。 C# 4.0借Vis

最近一個項目由“WinForm直接訪問DB2”移植到“WinForm通過PHP Web Service來訪問DB2”。

(優點是php可以架在Linux上,而Linux是免費的)

這個命題的難點不是訪問DB2,而是.NET調用PHP的Web Service。對于我這個長期作.NET,之前一直以為只有.NET才可以做Web Service……的人來說,真是有點強“聰”所難了。

但是問題還是要解決的,期限就擺在眼前呢。經過一番調查,終于有了眉目,現在分享給大家。

首先要說明的,PHP服務器需要至少需要兩個文件——一個WSDL文件和一個PHP文件。WSDL文件是一種機讀的XML文件,用于描述WebService提供的服務和調用方法(對于.NET則可以自動生成調用代碼,十分好用),php文件就是真正實現的WEB服務了。

1)PHP服務器端代碼

1-1)TestWebService.php代碼

以下為引用的內容:

<?php
class TestWebService
{
    
public function HelloWorld()
    {
        
return array("HelloWorldResult"=>"Hello");
    }

    
public function GetArray($args)
        {
          
/*
           注意,Web Service的方法在聲明時至多一個參數,
            可是在調用該方法時就必須傳value1,value2兩個參數。
            (這一點十分令人費解,我的理解是,在調用該方法時,系統把所有參數都放到一個對象里傳過來的)
          
*/

        
$value1 = $args->value1;  
        
$value2 = $args->value2;//這兩句是獲取真正的參數
 
        
$arry = array($value1,$value2);

        
//返回值也很特別,不是直接返回$arry,而是把它放到一個對象里再返回。
        return array("GetArrayResult"=>$arry);
    }
}

//創建WebSevice實例
$server = new SoapServer("TestWebService.wsdl");
//指定類名
$server->setClass("TestWebService");

$server->handle();


?>

1-2)TestWebService.wsdl代碼

以下為引用的內容:

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  
<wsdl:types>
    
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
      
<s:element name="HelloWorld">
        
<s:complexType />
      
</s:element>
      
<s:element name="HelloWorldResponse">
        
<s:complexType>
          
<s:sequence>
            
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
          
</s:sequence>
        
</s:complexType>
      
</s:element>
      
<s:element name="GetArray">
        
<s:complexType>
          
<s:sequence>
            
<s:element minOccurs="0" maxOccurs="1" name="value1" type="s:string" />
            
<s:element minOccurs="0" maxOccurs="1" name="value2" type="s:string" />
          
</s:sequence>
        
</s:complexType>
      
</s:element>
      
<s:element name="GetArrayResponse">
        
<s:complexType>
          
<s:sequence>
            
<s:element minOccurs="0" maxOccurs="1" name="GetArrayResult" type="tns:ArrayOfString" />
          
</s:sequence>
        
</s:complexType>
      
</s:element>
      
<s:complexType name="ArrayOfString">
        
<s:sequence>
          
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
        
</s:sequence>
      
</s:complexType>
    
</s:schema>
  
</wsdl:types>
  
<wsdl:message name="HelloWorldSoapIn">
    
<wsdl:part name="parameters" element="tns:HelloWorld" />
  
</wsdl:message>
  
<wsdl:message name="HelloWorldSoapOut">
    
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
  
</wsdl:message>
  
<wsdl:message name="GetArraySoapIn">
    
<wsdl:part name="parameters" element="tns:GetArray" />
  
</wsdl:message>
  
<wsdl:message name="GetArraySoapOut">
    
<wsdl:part name="parameters" element="tns:GetArrayResponse" />
  
</wsdl:message>
  
<wsdl:portType name="TestWebServiceSoap">
    
<wsdl:operation name="HelloWorld">
      
<wsdl:input message="tns:HelloWorldSoapIn" />
      
<wsdl:output message="tns:HelloWorldSoapOut" />
    
</wsdl:operation>
    
<wsdl:operation name="GetArray">
      
<wsdl:input message="tns:GetArraySoapIn" />
      
<wsdl:output message="tns:GetArraySoapOut" />
    
</wsdl:operation>
  
</wsdl:portType>
  
<wsdl:binding name="TestWebServiceSoap" type="tns:TestWebServiceSoap">
    
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    
<wsdl:operation name="HelloWorld">
      
<soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
      
<wsdl:input>
        
<soap:body use="literal" />
      
</wsdl:input>
      
<wsdl:output>
        
<soap:body use="literal" />
      
</wsdl:output>
    
</wsdl:operation>
    
<wsdl:operation name="GetArray">
      
<soap:operation soapAction="http://tempuri.org/GetArray" style="document" />
      
<wsdl:input>
        
<soap:body use="literal" />
      
</wsdl:input>
      
<wsdl:output>
        
<soap:body use="literal" />
      
</wsdl:output>
    
</wsdl:operation>
  
</wsdl:binding>
  
<wsdl:binding name="TestWebServiceSoap12" type="tns:TestWebServiceSoap">
    
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    
<wsdl:operation name="HelloWorld">
      
<soap12:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
      
<wsdl:input>
        
<soap12:body use="literal" />
      
</wsdl:input>
      
<wsdl:output>
        
<soap12:body use="literal" />
      
</wsdl:output>
    
</wsdl:operation>
    
<wsdl:operation name="GetArray">
      
<soap12:operation soapAction="http://tempuri.org/GetArray" style="document" />
      
<wsdl:input>
        
<soap12:body use="literal" />
      
</wsdl:input>
      
<wsdl:output>
        
<soap12:body use="literal" />
      
</wsdl:output>
    
</wsdl:operation>
  
</wsdl:binding>
  
<wsdl:service name="TestWebService">
    
<wsdl:port name="TestWebServiceSoap" binding="tns:TestWebServiceSoap">
      
<soap:address location="http://localhost/phpmyadmin/ws/TestWebService.php" />
    
</wsdl:port>
    
<wsdl:port name="TestWebServiceSoap12" binding="tns:TestWebServiceSoap12">
      
<soap12:address location="http://localhost/phpmyadmin/ws/TestWebService.php" />
    
</wsdl:port>
  
</wsdl:service>
</wsdl:definitions>

WSDL的代碼比較長,當方法很多時,手敲代碼是不太可能的。有一個巧的辦法,就是也用.NET實現一個不含真正方法體的Web Serivce,然后通過http://***/TestWebService.asmx?wsdl的方法生成wsdl代碼文件。

關于WSDL文件,我要說明特別說明兩點:

(1)soap:address結點是聲明WebService的地址,在部署時要改成相應地址;

(2)一維數組的聲明類型為ArrayOfType,字符串數組為ArrayOfString。如果Type不是簡單類型,則Type需要另外聲明。

2).NET客戶端代碼

先要添加Web引用,地址為WSDL文件的Http地址。

調用代碼(C#)

以下為引用的內容:

        //初始化WebService
        localhost.TestWebService srv = new localhost.TestWebService();
        
//調第一個方法
         string str = srv.HelloWorld();
        
//調第二個方法
         string[] arry= srv.GetArray("string1","string2");

總結: (一)PHP是一種弱類型語言,檢查錯誤比較困難。array類型也與一般理解的數組不同,它也有類似Hashtable的用法。

(二)PHP Web Service方法的傳入參數、返回值都至多有一個,因為真正調用時的參數和返回值,都是包裝到一個對象中傳送的。

(三)PHP Web Service也支持自定義類型和自定義類型數組等復雜類型,但不支持多組數組。

(四)若返回值需要是多張二維表時,我淺薄的以為,可以傳化一組字符串數組傳送,格式為

[表1行數],[表1列數],[表1列名1],[表1列名2],……[表1列名N],[表1中按行列存放的值]

[表2行數],[表2列數],[表2列名1],[表2列名2],……[表2列名N],[表2中按行列存放的值]

……

[表M行數],[表M列數],[表M列名1],[表M列名2],……[表M列名N],[表2中按行列存放的值]

按順序將上面[]中的內容串成字符串數組,效率還不錯,我測試10000行240列的數據,我有現成編解代碼,有興趣的可以向我索取.

分享:怎樣在 C# 中發起會議之類的特殊郵件
從C#中調用Outlook中的API,可以發起會議之類的特殊郵件。方法如下: 創建項目后,為它添加.NET引用:

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-08-25
相關.Net教程
av在线免费看片| 久久综合伊人77777蜜臀| 99视频免费观看蜜桃视频| 三日本三级少妇三级99| 性少妇videosexfreexxx片| 亚洲第一伊人| 色哦色哦哦色天天综合| 国产日韩欧美中文| 最新国产精品自拍| 日韩网站中文字幕| 国产米奇在线777精品观看| 日韩色视频在线观看| 国产伦精品一区二区三毛| 国精品无码人妻一区二区三区| 日韩免费小视频| 狠狠色丁香久久婷婷综| 亚洲第一页自拍| 视频在线99re| 国产精品白浆一区二小说| 国产亚洲精品美女久久久久久久久久| 国产精品久久久久久户外露出 | 九七电影院97理论片久久tvb| 国内精品伊人久久久久影院对白| 亚洲精品成a人在线观看| 亚洲7777| 中文字幕第15页| 欧美不卡在线| 在线观看视频一区| 国产伦精品一区二区三区视频孕妇 | 亚洲国产高清在线观看视频| 久久精品国产亚洲精品2020| 男女视频网站在线观看| 在线观看毛片网站| 久久中文在线| 亚洲精品国产福利| 18视频在线观看娇喘| 潘金莲一级淫片aaaaaa播放| 女同性一区二区三区人了人一| 欧美性生活大片免费观看网址| 91免费精品国偷自产在线| 国产又爽又黄无码无遮挡在线观看| www.欧美视频| 日本一区二区在线不卡| 2019中文字幕全在线观看| 亚洲欧美天堂在线| 久久精品97| 国产亚洲美州欧州综合国| 久久久久中文字幕2018| 在线观看免费不卡av| 国产在线|日韩| 91丨porny丨首页| 久久久视频精品| 三级黄色片播放| 日韩欧美专区| 国产精品乱码人人做人人爱| 国产精品狠色婷| 国产精品815.cc红桃| 神马久久av| 欧美色视频日本高清在线观看| 国产精品乱子乱xxxx| www.av视频| 亚洲最大黄网| 日韩免费性生活视频播放| 在线不卡中文字幕播放| 久久久久久久网站| 国产xxx在线观看| 一区二区三区高清在线观看| 亚洲欧美色综合| 99国产精品久久久久老师| 91精品国产闺蜜国产在线闺蜜| 欧美第十八页| 91精品国产综合久久久久久漫画| 天天爱天天做天天操| 国产毛片一区二区三区va在线| 国产在线精品一区二区不卡了 | 久久久婷婷一区二区三区不卡| 激情综合网五月婷婷| 亚洲经典自拍| 日韩精品视频中文在线观看| 亚洲欧洲日产国码无码久久99| 成人免费网站视频| 国产精品美女久久久久av爽李琼| 国产一区私人高清影院| xxxx日本少妇| 亚洲人www| 亚洲天堂视频在线观看| 欧美精品久久久久久久久25p| 热久久久久久| 亚洲一区二区偷拍精品| 久久精品五月婷婷| jizz国产在线| 国产.欧美.日韩| 91av在线精品| 欧美美女性生活视频| 欧美1区免费| 国产丝袜一区二区三区免费视频| 激情网站五月天| 国产一区精品二区| 欧美日韩中国免费专区在线看| 日本欧美色综合网站免费| 国产精品免费无遮挡| 成人污污视频在线观看| 国产成人精品亚洲精品| 国精品无码一区二区三区| 精品电影一区| 中文字幕久久久av一区| 亚洲熟女一区二区三区| 国产欧美一区二区三区精品观看 | 久草视频在线资源| 久久综合图片| 欧美日韩成人免费| 日本高清www| 欧美激情亚洲| 亚洲天堂av综合网| 白丝校花扒腿让我c| 成人影视亚洲图片在线| 精品国产免费视频| 午夜久久久精品| 亚洲人和日本人hd| 日韩欧美一级片| 又色又爽又高潮免费视频国产| 嫩呦国产一区二区三区av| 日韩欧美在线中文字幕| 性做爰过程免费播放| 成人免费av电影| 五月综合激情婷婷六月色窝| 一区国产精品| 国产精品字幕| 欧美日韩精品二区| 日韩精品视频在线观看视频| 国外成人福利视频| 色婷婷久久久亚洲一区二区三区 | 国产亚洲综合精品| 九九精品视频在线| 正在播放国产对白害羞| 麻豆久久婷婷| 国产综合在线视频| 欧美丰满艳妇bbwbbw| 麻豆精品国产传媒mv男同| 日本免费久久高清视频| 精品少妇久久久| 国产麻豆精品久久一二三| 国产精品欧美激情| 无码人妻av免费一区二区三区 | 中文字幕亚洲欧美在线不卡| 麻豆精品视频| 天天射天天色天天干| 亚洲国产wwwccc36天堂| 少妇久久久久久被弄到高潮| 3d动漫一区二区三区在线观看| 91黄色激情网站| 午夜视频在线瓜伦| 国产精品密蕾丝视频下载| 日韩激情av在线播放| www.17c.com喷水少妇| 激情视频一区二区三区| 欧美激情精品久久久久久黑人 | 久久激情视频久久| 女人18毛片毛片毛片毛片区二 | 亚洲熟妇无码一区二区三区| 免费一区二区三区在线视频| 日韩一区二区电影在线| 精产国品一区二区三区| 亚洲精品久久久中文字幕| 樱桃视频成人在线观看| 午夜欧美视频在线观看| 青青草精品视频在线| 欧美性生活一级片| 日韩精品电影网| 亚洲第一页av| 日韩精品1区2区3区| 国产国语刺激对白av不卡| 日本一本在线观看| 国产精品乱码久久久久久| 自拍偷拍99| 亚洲精品黑牛一区二区三区| 精品久久久久久综合日本欧美| 国产调教打屁股xxxx网站| 激情综合久久| 欧美一区二区色| 中文字幕av第一页| 亚洲欧美激情视频在线观看一区二区三区| 一区二区不卡视频| 成人午夜大片| 亚洲片在线资源| 黄色国产在线播放| 大桥未久av一区二区三区中文| 国产欧美日韩在线播放| 免费亚洲电影| 欧美日韩激情一区二区三区| aaaaaaaa毛片| 亚洲欧美日韩国产| 国产欧美最新羞羞视频在线观看| 国产黄色高清视频| 日韩欧美在线第一页| 污污网站在线观看视频| 在线国产日韩| 国产精品草莓在线免费观看 | 91精品国产91久久久| 色一情一乱一伦| 亚洲靠逼com| 久久精品香蕉视频| 中文字幕一区二区三区久久网站 | 成人免费在线视频网址| 欧美自拍偷拍一区二区| 欧美主播一区二区三区美女| 在线免费黄色小视频| 老妇喷水一区二区三区| yy111111少妇影院日韩夜片 | 久久精品日韩| 日韩免费成人| 一本色道久久88亚洲综合88| 久久人人爽人人爽人人| 国产日韩欧美不卡在线| 久久久久久久9| 欧美激情偷拍自拍| 欧美一区二区三区免费视| 国产理论视频在线观看| 色先锋aa成人| 美女露出粉嫩尿囗让男人桶| 男男视频亚洲欧美| 国产综合精品一区二区三区| 伊人亚洲精品| 亚洲深夜福利在线| 国产亚洲欧美精品久久久www| 国产精品三级久久久久三级| 日本a在线免费观看| 亚洲美女视频| 国产精品久久久久久久久久东京| 亚洲精品无码久久久| 在线电影国产精品| 老司机福利在线观看| 国产情人综合久久777777| 91视频 -- 69xx| 欧美三级黄美女| 成人国产精品久久久久久亚洲| 性欧美gay| 精品视频www| 日本污视频在线观看| 亚洲欧美激情在线| 视频在线观看免费高清| 国产精品久久久久久模特| 91免费视频网站| 亚洲网站免费| 中文字幕在线成人| 夜夜躁日日躁狠狠久久av| 欧美性xxxxxxx| chinese麻豆新拍video| 成人免费观看男女羞羞视频| 国产精品jizz在线观看老狼| 另类小说色综合| 国产精东传媒成人av电影| 超薄丝袜一区二区| 国产手机av在线| 欧美一级欧美三级在线观看| 亚洲欧美日韩第一页| 国产精品丝袜一区| 国产一伦一伦一伦| 国内精品免费在线观看| 中文字幕乱码一区二区三区| 天天做天天爱天天综合网| 国产有码一区二区| www一区二区三区| 久久久999精品免费| 国产露脸国语对白在线| 欧美一区二区三区婷婷月色| 中文字幕五月天| 亚洲人午夜精品天堂一二香蕉| 国产无遮挡猛进猛出免费软件| 免费成人美女在线观看.| 亚洲欧美日韩国产yyy| 久久久久久久久久久9不雅视频 | 日本超碰一区二区| 欧美激情xxxx| 无码h黄肉3d动漫在线观看| 精品视频在线导航| 国产午夜无码视频在线观看| 欧美影视一区在线| 亚洲人高潮女人毛茸茸| 免费在线观看黄色小视频| 亚洲三级久久久| 日本成人在线免费| 91网站在线播放| 三级a三级三级三级a十八发禁止| 狠狠色丁香婷婷综合久久片| 996这里只有精品| 国产精品嫩草99av在线| 欧美色欧美亚洲另类七区| 日韩一区三区| 999视频在线免费观看| 欧美变态网站| 国产精品久久久91| 精品一区二区三区四区五区| 韩国日本不卡在线| 国产一区二区三区四区五区3d| 毛片精品免费在线观看| 久久uomeier| 久久久精品亚洲| 亚洲黄色免费av| 久久精品久久久久久国产 免费| 亚洲精品97久久中文字幕| 亚洲网站在线观看| 亚洲第一页在线观看| 一区二区欧美久久| 黑人乱码一区二区三区av| 一本色道久久综合亚洲精品小说| 97在线公开视频| 日韩国产精品视频| 国产精品免费无遮挡| 亚洲精品日韩久久久| 国产wwwxxx| 在线成人激情黄色| 神马午夜精品95| 欧美成人免费网| 国产69精品久久久久按摩| 97香蕉久久超级碰碰高清版| 亚洲精品第一| 国产成人一区二区三区| 给我免费播放日韩视频| 国产精品视频免费在线观看| 欧美男男freegayvideosroom| 91香蕉国产在线观看| 欧美裸体在线版观看完整版| 国产成人女人毛片视频在线| 999久久久精品国产| 欧美日韩高清免费| 国产日韩欧美一区在线| 亚洲爆乳无码精品aaa片蜜桃| 看片网站欧美日韩| 欧在线一二三四区| 97se亚洲国产综合自在线不卡| 久久久久无码精品| 亚洲欧美日韩小说| 日本黄色激情视频| 在线观看日产精品| 天堂网视频在线| 亚洲免费视频观看| 天天操天天干天天爱| 久久久久久久久久久成人| 精品久久久久久久久久岛国gif| 国产91在线播放九色快色| 欧美自拍一区| 国模一区二区三区私拍视频| 欧美日韩一区二区高清| 自拍偷拍一区二区三区| 捆绑变态av一区二区三区| 国产日韩欧美久久| 中文字幕一区二区三| 国产又粗又长免费视频| 欧美少妇xxx| 中国精品一区二区| 一区二区欧美亚洲| 玖玖精品在线| 国产在线拍揄自揄视频不卡99| 色爱综合网欧美| 亚洲一区二区三区精品视频| 美女一区二区久久| 久久人人爽av| 日韩理论片一区二区| 国产高潮国产高潮久久久91| 91精品国产91热久久久做人人| 国产绿帽一区二区三区| 欧美成年人视频网站欧美| 国产美女亚洲精品7777| 91国产丝袜在线放| 伊人激情综合| 亚洲中文字幕无码av永久| 久久伊人中文字幕| 精品无码在线观看| 欧美精品乱码久久久久久按摩| 亚洲一区在线观| 久久成人这里只有精品| 草草视频在线一区二区| 九九久久99| 日韩国产欧美视频| 一级淫片在线观看| 亚洲国产精品综合小说图片区| 在线观看免费国产视频| 亚洲石原莉奈一区二区在线观看| 日本欧美在线| 国产99在线免费| 日日摸夜夜添夜夜添精品视频| 亚洲高清免费在线观看| 亚洲一区在线观看视频| 五月婷婷中文字幕| 最新国产成人av网站网址麻豆| 精品一区二区三区在线观看视频| 国产伦精品一区二区三区视频免费 | 福利精品视频在线| 一二三四区在线| 久久免费视频观看| 精品免费视频| 一二三四中文字幕| 国产午夜亚洲精品午夜鲁丝片| 一本一本久久a久久| 亚洲福利影片在线| 四虎国产精品免费久久5151| 国产精品二区三区| 奇米精品一区二区三区在线观看一| 一级片免费在线观看视频|