基礎拾遺------webservice詳解

基礎拾遺

基礎拾遺------特性詳解

基礎拾遺------webservice詳解

基礎拾遺------redis詳解

基礎拾遺------反射詳解

基礎拾遺------委托詳解

基礎拾遺------接口詳解

基礎拾遺------泛型詳解

基礎拾遺-----依賴注入

基礎拾遺-----數據注解與驗證

基礎拾遺-----mongoDB操作

基礎拾遺----RabbitMQ

前言

  工作當中常用的服務接口有三個wcf,webservice和webapi.首先第一個接觸的就是webservice,今天大致總結一下。

1.webservice概念相關

1.1.Web Service也叫XML Web Service WebService

  是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在 Web上提供的軟件服務,使用WSDL文件進行說明,并通過UDDI進行注冊。

1.2.XML:(Extensible Markup Language)擴展型可標記語言。

  面向短期的臨時數據處理、面向萬維網絡,是Soap的基礎。它被設計的宗旨是描述數據(XML),而非顯示數據(HTML)。后面單獨博客進行詳細介紹。

1.3.Soap:(Simple Object Access Protocol)簡單對象存取協議。

  是XML Web Service 的通信協議。其指導理念是“唯一一個沒有發明任何新技術的技術”。當用戶通過UDDI找到你的WSDL描述文檔后,他通過可以SOAP調用你建立的Web服務中的一個或多個操作。SOAP是XML文檔形式的 調用方法的規范,它可以支持不同的底層接口,像HTTP(S)或者SMTP。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Header><m:Trans xmlns:m="http://www.w3schools.com/transaction/"soap:mustUnderstand="1">234</m:Trans>
</soap:Header><soap:Body><m:GetPrice xmlns:m="http://www.w3schools.com/prices"><m:Item>Apples</m:Item></m:GetPrice>
</soap:Body>
</soap:Envelope>

?

1.4.WSDL:(Web Services Description Language) Web服務描述語言

  WSDL 文件是一個 XML 文檔,用于說明一組 SOAP 消息以及如何交換這些消息。大多數情況下由軟件自動生成和使用。

  • Types - 數據類型定義的容器,它使用某種類型系統(一般地使用XML Schema中的類型系統)。
  • Message - 通信消息的數據結構的抽象類型化定義。使用Types所定義的類型來定義整個消息的數據結構。
  • Operation - 對服務中所支持的操作的抽象描述,一般單個Operation描述了一個訪問入口的請求/響應消息對。
  • PortType - 對于某個訪問入口點類型所支持的操作的抽象集合,這些操作可以由一個或多個服務訪問點來支持。
  • Binding - 特定端口類型的具體協議和數據格式規范的綁定。
  • Port - 定義為協議/數據格式綁定與具體Web訪問地址組合的單個服務訪問點。
  • Service- 相關服務訪問點的集合。WSDL文檔元素的結構圖
  • WSDL?描述了 Web服務的三個基本屬性:

    (1)服務所提供的操作

    (2)如何訪問服務

    (3)服務位于何處(通過 URL 來確定就 OK 了)

1.5.UDDI (Universal Description, Discovery, and Integration)

  是一個主要針對Web服務供應商和使用者的新項目。在用戶能夠調用Web服務之前,必須確定這個服務內包含哪些商務方法,找到被調用的接口定義,還要在服 務端來編制軟件,UDDI是一種根據描述文檔來引導系統查找相應服務的機制。UDDI利用SOAP消息機制(標準的XML/HTTP)來發布,編輯,瀏覽 以及查找注冊信息。它采用XML格式來封裝各種不同類型的數據,并且發送到注冊中心或者由注冊中心來返回需要的數據。

2. .net webservice

  上面的理論知識就算您不清楚,想要使用webservice還是沒有任何難度的,不信您往下看。

2.1.創建webservice(vs2013)

  2.1.1.新建一個webservice項目(文件->新建->項目->C#->Web服務應用程序)

  建完這個工程,我們將看到一個叫ServiceDome.asmx的文件,就先常見webfrom一樣它類似與aspx,我們直接打開cs代碼文件即可,asmx文件至今沒考慮過他有什么用.如果你什么都還沒做的話,將看見一個被注釋掉的helloworld的WebMethod,把注釋去掉,在運行,你就可以得 到最簡單的webservice運行實例了.點擊"helloworld"將執行其方法.顯然,這個函數對我們的意義只在于宏觀的了解了下web服務的寫 法.

  2.1.2.WebMethodAttribute詳解

[WebMethod(Description="備注信息")]   public string HelloWorld()   {   return "Hello World";   } 

  如上,WebMethodAttribute此特性是表示可以從遠程 Web 客戶端調用該方法。

  其中WebMethod包括以下6個屬性

  (1)Description:?

    是對webservice方法描述的信息。就像webservice方法的功能注釋,可以讓調用者看見的注釋。

  (2).EnableSession:

    指示webservice否啟動session標志,主要通過cookie完成的,默認false。

?

public static int i=0;
[WebMethod(EnableSession=true)]
public int Count()
{
i=i+1;return i;
} 

  如上Count()回和保存的session類似把信息保留下來。

  (3)MessageName:

    主要實現方法重載后的重命名.

[WebMethod]
public int Add(int i, int j) {
return i + j;
}
[WebMethod(MessageName="Add2")]
public int Add(int i, int j, int k) {
return i + j + k;
}
} 

  (4).TransactionOption:

    指示 XML Web services 方法的事務支持。

  (5).CacheDuration:

    Web支持輸出高速緩存,這樣webservice就不需要執行多遍,可以提高訪問效率,而CacheDuration就是指定緩存時間的屬性。

public static int i=0;
[WebMethod(EnableSession=true,CacheDuration=30)]
public int Count()
{
i=i+1;
return i;
}

  (6).BufferResponse:

    配置WebService方法是否等到響應被完全緩沖完,才發送信息給請求端。普通應用要等完全被緩沖完才被發送的!只有當已知 XML Web services 方法將大量數據返回到客戶端時,才需要將 BufferResponse 設置為 false。對于少量數據,將 BufferResponse 設置為 true 可提高 XML Web services 的性能。當 BufferResponse 為 false 時,將對 XML Web services 方法禁用 SOAP 擴展名。

2.2.實現webservice

  特性說完就要說我們的webserviece服務接口的實現了,其實對于他的實現和我們實現一個類沒有太大的區別。、

        [WebMethod]public string SynCardToDreams(int start, int end){try{DateTime begin = DateTime.Now;UserSignService userService = new UserSignService();bool ret = userService.SynChroCardToDreams(start, end);DateTime endTime = DateTime.Now;double total = (endTime - begin).TotalMinutes;string retmsg = ret ? "同步成功" : "同步失敗";return "本次同步用時 " + total + "分鐘;" + retmsg;}catch (Exception ex){return "同步失敗:" + ex.ToString();}}

2.3.調用webservice

在要使用服務的項目處右擊添加服務引用

然后在程序當中直接實例化調用此方法即可:

  //調用方法TestServiceReference.TestServiceSoapClient testService = new TestServiceReference.TestServiceSoapClient();int result = testService.Add(1, 2);

前端調用

<script type="text/javascript">$(function () {$.ajax({type: 'POST',url: 'TestService.asmx/ADD',data: '{ A: 4,B:4}',dataType: 'json',contentType: "application/json",success: function (data) {alert(data.d);}});});
</script>

?3.修改webservice服務地址:

3.1修改配置文件

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  <configSections>  </configSections>  <system.serviceModel>  <bindings>  <basicHttpBinding>  <binding name="PointStoreServiceSoap" />  </basicHttpBinding>  </bindings>  <client>  <endpoint address="http://localhost:25548/WebServiceDom.asmx"  binding="basicHttpBinding" bindingConfiguration="PointStoreServiceSoap"  contract="PointStoreService.PointStoreServiceSoap" name="PointStoreServiceSoap" />  </client>  </system.serviceModel>  
</configuration> 

?

轉載于:https://www.cnblogs.com/kmonkeywyl/p/5726035.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395138.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395138.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395138.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

南京打造大數據創新孵化平臺

9月9日上午&#xff0c;南京微軟云暨移動應用孵化平臺在南京開發區新港高新園揭牌運營&#xff0c;項目創業大賽同步啟動。 據悉&#xff0c;南京微軟云暨移動應用孵化平臺將打造以“云物大智”產業為核心的創新創業孵化平臺。平臺代理總經理童雪松介紹&#xff0c;平臺匯集了強…

react控制組件中元素_React Interview問題:瀏覽器,組件或元素中呈現了什么?

react控制組件中元素by Samer Buna通過Samer Buna React Interview問題&#xff1a;瀏覽器&#xff0c;組件或元素中呈現了什么&#xff1f; (React Interview Question: What gets rendered in the browser, a component or an element?) **技巧問題** (** Trick Question *…

java gc時自動收dump_Full?GC分析:設置Java?VM參數實現在Full?GC前后自動生成Dump

本文講解了如何設置JavaVM參數實現在FullGC前后自動生成Dump。共有三個VM參數需要設置&#xff1a;HeapDumpBeforeFullGC 實現在Full GC前dump。HeapDumpBeforeFullGC 實現在Full GC后dump。HeapDumpPath 設置Dump保存的路徑設置這些參數的方法&#xff0c;這里總結了四種&…

jquery插件dataTables自增序號。

dataTables官網提供了一種方式&#xff0c;使用后沒有達到預期效果&#xff08;js報錯&#xff09;&#xff0c;沒有深究原因。如果需要&#xff0c;可以按照下面的方式來。 1 $(#dataList).dataTable({2 "language": {3 "sProcessing&…

Maven使用詳解

1、maven介紹&#xff1a; 2、pom.xml文件理解&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schema…

諾基亞報告稱:到2020年北美電子郵件流量占比將跌至7%

日前&#xff0c;諾基亞貝爾實驗室下屬貝爾實驗室咨詢部門&#xff08;Bell Labs Consulting&#xff09;發布研究報告稱&#xff0c;在北美&#xff0c;千禧一代青少年和青壯年消費群體正逐漸壯大&#xff0c;受其驅動的視頻通信流量占比將由47%增至86%。隨著視頻通話和視頻會…

開源貢獻 計算_我的第一個Hacktoberfest-第一次為開源做貢獻的經驗

開源貢獻 計算by Sibylle Sehl通過Sibylle Sehl 我的第一個Hacktoberfest-第一次為開源做貢獻的經驗 (My First Hacktoberfest — Experiences of Contributing to Open Source as a First Timer) Contributing to Open Source and projects can seem like a daunting process…

java web junit_如何使用junit測試javaweb工程

一:創建一個測試類,建議將測試類單獨放在一個包中(在 maven 項目里有測試類專門的存放位置),新建一個Junit Test Case類,下一步 測試類的命名建議是你將要測試的類名Test,然后點 Browse, 你可以選擇要進行測試的類(一般選擇 Service, 因為 Service 關心的是業務需求),用這種方式…

文件系統及程序的限制關系: ulimit

想像一個狀況&#xff1a;我的 Linux 主機里面同時登陸了十個人&#xff0c;這十個人不知怎么搞的&#xff0c; 同時打開了 100 個文件&#xff0c;每個文件的大小約 10MBytes &#xff0c;請問一下&#xff0c; 我的 Linux 主機的內存要有多大才夠&#xff1f; 1010010 10000…

java代碼_Java 代碼實現排序算法

閱讀本文約需要8分鐘 大家好&#xff0c;我是你們的導師&#xff0c;我每天都會在這里給大家分享一些干貨內容(當然了&#xff0c;周末也要允許老師休息一下哈)。上次老師跟大家分享了下SpringBootGradle MyBatisPlus3.x搭建企業級的后臺分離框架的相關知識&#xff0c;今天跟大…

移動游戲市場Testin云測占有率超過90%

《王者榮耀》、全民K歌、美團大眾、共享單車……越來越多的爆款應用占據著我們的手機桌面&#xff0c;也驅動著創業者不斷發掘新的移動應用和商業模式&#xff0c;卻鮮有人留意到&#xff0c;由移動應用催生出來的APP測試市場。 “現在用戶獲取成本是幾年前的幾十倍&#xff0c…

java 拆箱_Java自動裝箱拆箱

一、裝箱、拆箱定義如果一個int型量被傳遞到需要一個Integer對象的地方&#xff0c;那么&#xff0c;編譯器將在幕后插入一個對Integer構造方法的調用&#xff0c;這就叫做自動裝箱。而如果一個Integer對象被放到需要int型量的地方&#xff0c;則編譯器將幕后插入一個隊intValu…

我們如何使用CircleCI 2.0來構建Angular應用并將其部署到AWS S3

by Marius Lazar通過馬里烏斯拉扎爾(Marius Lazar) 我們如何使用CircleCI 2.0來構建Angular應用并將其部署到AWS S3 (How we used CircleCI 2.0 to build and deploy an Angular app to AWS S3) In today’s world, continuous integration and deployment (CI & CD) is a…

攜手助力新型智慧城市建設和科技創新發展

2017年5月9日&#xff0c;三門峽市政府與北京航天控制儀器研究所、溢思得瑞科技創新集團戰略合作協議簽約儀式舉行&#xff0c;共同推動三門峽市新型智慧城市建設和科技創新發展。 市委書記劉南昌&#xff0c;市委常委、宣傳部部長呂挺琳&#xff0c;副市長李琳&#xff0c;市城…

在采用vue-cli Post Get

需要依賴插件 vue-resource npm install vue-resource --save https://cn.vuejs.org/v2/cookbook/using-axios-to-consume-apis.html 采用axios一樣可以取數值 new Vue({ el: #app, data () { return { info: null } }, mounted () { axios .get(https://api.coindesk.com/v1/b…

優秀的開源項目C_適合提高C/C++、網絡編程能力的開源項目!不要錯過,趕緊收藏...

我們學習每一個編程語言都是有一個項目實戰的過程&#xff0c;而對于開發類的編程語言&#xff0c;除了適當的做項目程序外&#xff0c;學習了解其他的開源項目更是一個關鍵&#xff0c;就比如我們的C/C編程語言的學習。前陣子有一個小伙伴就問到我&#xff0c;我學好C/C基礎后…

Opencv分水嶺算法——watershed自動圖像分割用法

分水嶺算法是一種圖像區域分割法&#xff0c;在分割的過程中&#xff0c;它會把跟臨近像素間的相似性作為重要的參考依據&#xff0c;從而將在空間位置上相近并且灰度值相近的像素點互相連接起來構成一個封閉的輪廓&#xff0c;封閉性是分水嶺算法的一個重要特征。 其他圖像分割…

單變量線性回歸模型_了解如何為單變量模型選擇效果最好的線性回歸

單變量線性回歸模型by Bjrn Hartmann比約恩哈特曼(BjrnHartmann) 找出哪種線性回歸模型最適合您的數據 (Find out which linear regression model is the best fit for your data) Inspired by a question after my previous article, I want to tackle an issue that often c…

java javax.xml.ws_如何通過javax.xml.ws.Service進行調用

在Eclipse中創建了一個新的標準java 7項目,并成功設法獲取javax.xml.ws.Service的實例,如下所示&#xff1a;String wsdlURL "http://example.com:3000/v1_0/foo/bar/SomeService?wsdl";String namespace "http://foo.bar.com/webservice";String servi…

漢能:讓人類像葉綠素一樣利用太陽能

6月初&#xff0c;一批在車筐里同時標識了摩拜“Mobike”和漢能“Hanergy”的摩拜單車在北京投入使用。這是由漢能與摩拜合作開發的第一批裝有漢能薄膜太陽能組件的共享單車。 這批共享單車所裝載的5.5瓦的漢能MiaSol的柔性薄膜太陽能組件&#xff0c;將為摩拜車載智能鎖中內置…