成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談關于Webservices對接的一些問題

開發 后端
最近在和一些公司做Webservices對接,其中有.NET 調用.NET,也有.NET調用Java。這里為大家總結下這兩種對接不同的處理方法。

.NET調用.NET寫的Web服務

.NET和.NET的Webservices對接比較簡單。只要知道對方的web服務編碼文件(.asmx)或者web服務描述文件(.wsdl),在項目中添加web應用即可。

同理,如果是你為對方提供web服務,只要提供上面的文件即可。

安全性方面我們是用了下面兩個方法,如果有其他方法,不妨一起討論:

1、soapheader驗證

  1. public class ProductSoapHeader : SoapHeader  
  2.     {  
  3.         public string Username;  
  4.         public string Password;  
  5.         public ProductSoapHeader() { }  
  6.         public ProductSoapHeader(string u, string p)  
  7.         {  
  8.             Username = u;  
  9.             Password = p;  
  10.         }  
  11.  } 

2、限制登入ip

  1. CustomerIP=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 

.NET調用Java寫的web服務

.NET調用java也需要知道它的描述文件地址,具體有以下幾種調用方法:

a)在項目中添加web應用。

b)使用wsdl.exe將wsdl文件編譯成動態庫,這樣使用起來會更加方便。

b.1)生成類文件

  1. wsdl.exe /l:cs /n:webser /out:C:/webser.cs c:/test.wsdl 

b.2)生成動態庫

  1. csc /target:library /out:"c:\webser.dll" c:\webser.cs 

生成動態庫

c)直接sent SOAP request

如果對方提供了SOAP request的格式,這無疑是最直接的方法。

下面提供一個發送SOAP請求的示例:

  1. private void sendSoap()  
  2.     {  
  3.  
  4.         XmlDocument xmldoc = new XmlDocument();  
  5.         xmldoc.Load(Server.MapPath("user.xml"));  
  6.         string data = xmldoc.InnerXml;  
  7.         string url = "XXX";  
  8.         string result=null;  
  9.         getResponse(url, data, ref result);  
  10.         //others  
  11.  
  12.     }  
  13. }  
  14.    ///   
  15.     /// 發送SOAP請求  
  16.     ///   
  17.     /// 地址  
  18.     /// 請求內容  
  19.     /// 返回結果  
  20.     public void getResponse(string url, string datas, ref string result)  
  21.     {  
  22.         ASCIIEncoding encoding = new ASCIIEncoding();  
  23.         byte[] data = encoding.GetBytes(datas);  
  24.         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);  
  25.         request.AllowAutoRedirect = true;  
  26.         request.Method = "POST";  
  27.         request.ContentType = "text/xml; charset=utf-8";  
  28.         request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";  
  29.         request.ContentLength = data.Length;  
  30.         Stream stream = request.GetRequestStream();  
  31.         stream.Write(data, 0, data.Length);  
  32.         stream.Close();  
  33.         HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
  34.         StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);  
  35.         result = reader.ReadToEnd();  
  36.         reader.Close();  
  37.     } 

一個SOAP格式的例子 

  1. < ?xml version="1.0" encoding="UTF-8"?> 
  2. < soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  3. < soap:Body> 
  4.    < e:RegisterUser xmlns:e="XXX"> 
  5.     < UserInfo> 
  6.      < email>XXX  
  7.      < fname>XXX  
  8.      < lname>XXX  
  9.      < password>XXX  
  10.     < /UserInfo> 
  11.    < /e:RegisterUser> 
  12. < /soap:Body> 
  13. < /soap:Envelope> 

.NET里默認的SOAP格式:

  1. < ?xml version="1.0" encoding="utf-8"?> 
  2. < soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.                xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  4.                xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
  5.   < soap:Body> 
  6.     < DocumentWrappedLiteral xmlns="http://www.contoso.com"> 
  7.       < MyAddress> 
  8.         < Street>string  
  9.         < City>string  
  10.         < Zip>string  
  11.       < /MyAddress> 
  12.       < useZipPlus4>boolean  
  13.     < /DocumentWrappedLiteral> 
  14.   < /soap:Body> 
  15. < /soap:Envelope> 

msdn上的一篇文章講如何:控制 Web 服務方法的總體 SOAP Body 的格式設置

最近在做一些接口方面的工作,肯定還有很多沒顧及到的東西。也希望大家能多討論一些。

【編輯推薦】

  1. WebServices返回數據的4種方法橫向比較
  2. 利用C#指針進行圖像操作
  3. C# 4.0中泛型協變性和逆變性詳解
  4. C#實例講解二叉樹原理與實現
  5. Ajax,未來的WebServices?
責任編輯:彭凡 來源: cnblogs
相關推薦

2016-10-18 22:10:02

HTTP推送HTML

2009-07-21 10:35:18

margin coll

2018-06-12 15:39:41

容器部署云平臺

2021-10-21 06:52:17

Vue3組件 API

2011-11-01 09:29:08

Android 4.0

2009-11-30 13:51:28

VS2003 Runt

2011-05-31 17:50:07

白盒測試

2011-03-08 14:28:03

proftpdGentoo

2018-05-17 14:52:11

Javascripthtmlcss

2022-01-16 08:04:44

集群部署canal

2010-05-04 15:59:05

Oracle字符集

2010-09-17 15:41:46

網絡協議分析軟件

2012-12-19 11:40:13

思科路由器

2009-06-10 21:46:02

JavaScript與

2009-08-06 16:01:30

C#接口成員

2009-11-23 13:44:33

PHP5面向對象

2011-01-26 16:24:53

Sun甲骨文

2009-06-04 16:28:43

EJB常見問題

2009-06-18 15:14:53

Spring osgi

2012-04-25 22:45:46

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 澳门永久av免费网站 | 欧美一级大黄 | 欧美日韩一区精品 | 国产成人99久久亚洲综合精品 | av色站| 午夜视频一区二区三区 | 毛片视频网址 | 欧美黄色绿像 | 国内自拍偷拍 | 一级h片 | 日韩一区二区三区精品 | 四虎影院久久 | 久久久精品一区二区三区四季av | 欧美色综合一区二区三区 | 日本电影一区二区 | 国产精品久久久 | 久久精品国产免费 | 日本黄色大片免费 | 免费一区二区三区在线视频 | 99视频在线| 国产精品成人一区二区三区夜夜夜 | 色www精品视频在线观看 | 91在线精品一区二区 | 亚洲精品第一国产综合野 | 国产一二区视频 | 亚洲一区二区三区久久 | 色婷婷综合久久久中字幕精品久久 | 五月综合激情婷婷 | a级毛片国产 | 99精品欧美一区二区三区 | 成人h视频在线 | 亚洲人人 | 91久久久久久久久久久久久 | 一区二区三区精品视频 | 日韩欧美不卡 | 久久91| 成人伊人| 日韩成人精品在线 | 日韩中文一区二区三区 | 久久午夜国产精品www忘忧草 | 亚洲美女视频 |