欧美三区四区_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教程
国产成人精品电影久久久| 久久精品网站免费观看| 欧美一卡2卡三卡4卡5免费| 亚洲xxxx18| 国产伦精品一区二区三区精品| 欧美 日韩 综合| 日韩中文字幕一区二区三区| 欧美人狂配大交3d怪物一区| 官网99热精品| 一区二区三区伦理片| 在线观看欧美| 99re视频精品| 日韩亚洲欧美成人| 成年人午夜免费视频| 日韩黄色一级视频| 欧美日韩一区二区国产| 色88888久久久久久影院按摩| 91精品久久久久久久久| 亚洲最大免费视频| www.欧美| 久久久91精品国产一区二区精品| 久久成人精品视频| 99福利在线观看| 国产视频手机在线| 日韩精品一二三四| 精品免费国产二区三区| 婷婷四房综合激情五月| 精品无码人妻一区二区三区品| 欧美日韩在线网站| 亚洲福利一区二区三区| 国产一区玩具在线观看| 中文幕无线码中文字蜜桃| 精品视频一二| 日本一区二区三区四区在线视频| 欧美黑人巨大精品一区二区| 国产三级三级看三级| 伊人色综合一区二区三区影院视频| 国产在线精品一区二区| 亚洲人线精品午夜| 黄色网页免费在线观看| www.黄色av| 极品美女销魂一区二区三区免费| 亚洲视频在线观看免费| 国产综合中文字幕| 国产又粗又猛又爽又黄的视频一| 视频精品一区二区| 亚洲精品美女在线观看播放| 欧美久久久久久久久久久久久久| 天天干天天插天天射| 亚洲综合精品四区| 亚洲国产精品久久久久秋霞不卡| 中国黄色录像片| 中文字幕久久网| 免费观看在线色综合| 精品偷拍一区二区三区在线看| 精品久久久无码人妻字幂| 一级黄色大毛片| 麻豆成人91精品二区三区| 亚洲色图第一页| 日韩av片在线看| 天堂在线观看视频| 99精品偷自拍| 欧美一级免费看| 日本一区二区在线免费观看| 国产一区二区三区不卡av| 亚洲精品国产一区二区三区四区在线| 国产欧美 在线欧美| 999福利视频| 香蕉av一区二区| 欧美一级理论片| www.国产二区| 免费的黄色av| 久久综合网色—综合色88| 91成品人片a无限观看| 成年人网站免费在线观看 | xvideos.蜜桃一区二区| 一区二区在线观看视频在线观看| 91亚色免费| 国产污视频在线看| 久久精品女人| 日韩中文字幕网| 亚洲视频在线不卡| 欧美人妖在线观看| 在线观看亚洲a| 中文字幕一区二区三区精彩视频| 国产成人精品a视频| 不卡视频免费播放| 国产成人综合久久| 国产精品免费在线视频| 亚洲调教视频在线观看| 亚洲深夜福利视频| 久久久久久久久久久久久久久国产| 九九99久久精品在免费线bt| 亚洲线精品一区二区三区八戒| 激情欧美一区二区三区中文字幕| 销魂美女一区二区| 国产一区二区三区四| 国内精品一区二区三区| 中文字幕网站在线观看| 天天色综合色| 亚洲精品动漫久久久久| 美女少妇一区二区| 国产成人一二| 欧美视频一区二区在线观看| 国产精品va在线观看无码| 久久sese| 亚洲最大的成人av| 亚洲福利av在线| 亚洲第一视频在线| 国产精品久久精品日日| 国产综合18久久久久久| 在线观看一二三区| 91亚洲大成网污www| 国产中文字幕亚洲| 国产成人无码一区二区在线播放| 国产毛片精品国产一区二区三区| 欧洲一区二区视频| 九九热精品在线观看| 日韩成人免费在线| 久久久综合免费视频| 成人欧美一区二区三区黑人一| 亚洲免费播放| 久久亚洲国产成人| 日本理论中文字幕| 国产精品亚洲欧美| 欧美激情一区二区久久久| 日韩免费成人av| 亚洲欧美日韩国产| 欧美激情在线有限公司| 极品美妇后花庭翘臀娇吟小说| 国产麻豆综合| 九九综合九九综合| 一级黄色片日本| 麻豆精品久久精品色综合| 韩国日本不卡在线| 欧美黄色一级网站| 精品亚洲国产成人av制服丝袜| 日韩av免费看网站| 国产女同在线观看| av激情亚洲男人天堂| 亚洲一区二区免费在线| 亚洲天堂免费av| 亚洲国产精品成人综合色在线婷婷| 精品久久一区二区三区蜜桃| www.日本在线观看| 一区二区三区久久| 欧美一级爱爱视频| 欧美特黄不卡| 日韩亚洲欧美中文三级| 91视频福利网| 午夜久久美女| 欧美丰满片xxx777| 久久免费在线观看视频| 粉嫩av一区二区三区| 亚洲xxx大片| 国产aⅴ一区二区三区| 一区二区三区在线视频观看| 无码毛片aaa在线| 在这里有精品| 精品乱人伦小说| 性活交片大全免费看| 亚洲视频一区| 97超级碰碰碰久久久| 久久露脸国语精品国产91| 99久久久久久| 欧美亚洲一级二级| 日韩欧美少妇| 欧美精选一区二区| 天天久久综合网| 欧美日韩一区二区三区四区在线观看 | 日本久久精品电影| 97在线播放视频| 日本一区二区三区视频| 中文字幕日韩免费视频| 制服丨自拍丨欧美丨动漫丨| 国产精品中文字幕日韩精品| 成人综合电影| 免费观看欧美大片| 欧美日韩精品二区第二页| 欧美性猛交xxxx乱大交91| 国内揄拍国内精品久久| 欧美影院在线播放| 最新在线中文字幕| 一区二区三区中文在线| 日韩av综合在线观看| 成人羞羞在线观看网站| 久热精品视频在线观看| 国产无遮挡aaa片爽爽| 国产欧美综合在线观看第十页| 亚洲一区二区免费视频软件合集| 欧美精品影院| 日韩激情av在线免费观看| 女人黄色一级片| 成人小视频在线| 欧美中日韩免费视频| 青青国产精品| 亚洲国产精品久久精品怡红院| 亚洲码无人客一区二区三区| 韩日精品视频一区| 久久久久免费网| 国产亚洲观看| 亚洲视频第一页| 九九视频免费看| 日本一区二区免费在线| 激情成人开心网| 不卡一区综合视频| 久久久视频免费观看| 在线观看国产成人| 黄色精品一区二区| 在线视频日韩欧美| 免费亚洲网站| www.久久久| 欧美美女被草| 亚洲美女在线看| 国产极品国产极品| 国产精品麻豆久久久| 免费不卡av在线| 小处雏高清一区二区三区| 51精品在线观看| 国产乱色精品成人免费视频| 91九色最新地址| 欧美xxxxx精品| 国产盗摄女厕一区二区三区| 涩涩涩999| 一区三区在线欧| 高清视频欧美一级| 国产视频手机在线| 欧美精品色综合| 91麻豆精品国产91久久综合| wwwwxxxxx欧美| 国产96在线 | 亚洲| 欧美在线91| 国产日韩在线看片| 久久久久伊人| 在线亚洲男人天堂| 无码人妻丰满熟妇区五十路| 午夜精品久久久久久久99水蜜桃| 在线播放免费视频| 蜜臀久久久久久久| 日本在线视频不卡| 精品中文一区| 日本欧美一二三区| japanese23hdxxxx日韩| 日韩电影中文字幕在线观看| 日本中文字幕免费| 午夜伦理一区二区| 亚洲麻豆一区二区三区| 成人久久18免费网站麻豆| 国产成人亚洲综合无码| 欧美激情性爽国产精品17p| 91在线视频九色| 精品国产三区在线| 欧美成人手机在线| 精品人妻一区二区三区四区不卡 | 国产v日产∨综合v精品视频| gogogo免费高清日本写真| 亚洲精品国产首次亮相| 99c视频在线| 荡女精品导航| 国内精品伊人久久| sese综合| 在线观看欧美视频| 国产又大又粗又长| 日韩精品专区在线| 日本中文字幕免费| 色婷婷亚洲综合| 精品成人无码一区二区三区| 亚洲欧美综合网| 午夜av中文字幕| 国产激情视频一区二区在线观看| 大西瓜av在线| 久久久久国产精品午夜一区| 日韩精品一区二区三区色偷偷| 大胆日韩av| 91免费看蜜桃| 日韩精品福利一区二区三区| 国产成人avxxxxx在线看| 日本欧美在线| 欧美激情精品久久久久久久变态| 后入内射欧美99二区视频| 亚洲裸体xxxx| 国产裸体无遮挡| 亚洲电影av在线| 日本丰满少妇做爰爽爽| 欧美一区二区三区性视频| 精品亚洲永久免费| 91国产成人在线| 91高清免费看| 精品毛片网大全| 懂色av蜜臀av粉嫩av永久| 午夜精品久久久| ass极品国模人体欣赏| 亚洲一区二区欧美日韩| a天堂中文字幕| 亚洲一区中文日韩| 少妇精品无码一区二区免费视频| 伊人一区二区三区| 一区二区三区四区免费| 亚洲乱码国产乱码精品精可以看 | heyzo久久| av一区二区在线看| 日韩av免费大片| 含羞草久久爱69一区| 国产精品99一区二区三| 国新精品乱码一区二区三区18| 97欧美在线视频| 欧美久久综合性欧美| 欧美成人tv| 亚洲精品久久久久久一区二区| 亚洲福利久久| 91社在线播放| 日韩精品一级中文字幕精品视频免费观看 | 日韩高清电影免费| 91在线高清视频| 欧美色女视频| 精品人伦一区二区三区| 一区二区在线影院| 日韩久久不卡| 欧美一级二区| 精品国产一区二区三区无码| 久久精品国产一区二区三| 男人揉女人奶房视频60分 | 国产精品人人做人人爽人人添| 乱码一区二区三区| 亚洲欧美一区二区三区孕妇| 精品人伦一区二区三电影| 亚洲成人av免费| 538精品在线观看| 欧美片网站yy| 少妇无套内谢久久久久| 亚洲乱码av中文一区二区| 欧美一区二区在线观看视频| 久久99久久久久久久噜噜| 欧美大片91| 亚洲a中文字幕| 91tv官网精品成人亚洲| 亚洲欧美精品| 免费在线观看精品| 成人免费毛片播放| 久久一留热品黄| 玖草视频在线观看| 精品国产老师黑色丝袜高跟鞋| 久草免费在线观看视频| 日韩欧美精品在线| 国产高清免费av| 欧美成人精品一区二区| **日韩最新| 成人性生交大片免费观看嘿嘿视频| 大片网站久久| 亚洲免费在线精品一区| 韩国精品在线观看| 成人黄色一级大片| 亚洲欧洲成人av每日更新| 成人在线观看免费完整| 欧美一区二区三区免费观看视频| 一级黄色片免费| 久久久久999| 风间由美性色一区二区三区四区| 成人在线免费观看一区| 亚洲精品1区| 日韩少妇内射免费播放| 2019国产精品| 成人免费网站黄| 欧美三级中文字幕在线观看| 一区不卡在线观看| 久久久久999| 卡通动漫国产精品| 蜜桃成人在线| 精品午夜久久福利影院| 日本一区二区三区在线免费观看| 亚洲一区二区五区| 日本学生初尝黑人巨免费视频| 亚洲毛片在线看| 日韩一级特黄| 成人区精品一区二区| 性欧美xxxx大乳国产app| 免费看污黄网站| 亚洲欧美视频一区| 国产精品二区一区二区aⅴ| 亚洲精品在线91| 日韩专区视频网站| 国产精品一区二区免费看| 久久久久久9| 两性午夜免费视频| 福利一区视频在线观看| 中文字幕av无码一区二区三区| 久久天天躁狠狠躁夜夜躁2014| 国产另类在线| 亚洲国产欧美不卡在线观看 | 最新日韩免费视频| 亚洲成人网在线观看| 欧美日韩在线精品一区二区三区激情综合 | 亚洲级视频在线观看免费1级| 免费观看亚洲| 亚洲xxx大片| 日日夜夜精品免费视频| 久久久久久久久久影视| 欧美私人免费视频| 五月婷婷六月丁香综合| 国产在线拍偷自揄拍精品|