• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • [WCF REST] 一個簡單的REST服務實例(3)

    發表于:2012-02-09來源:博客園作者:Artech點擊數: 標簽:REST服務實例
    17: 18: 如上面的配置片斷所示,我們定義了一個與服務端相匹配的客戶端終結點,該終結點上應用了一個WebHttpBehavior終結點行為。WebHttpBehavior可以說是整個

     

      17:

      18:

      如上面的配置片斷所示,我們定義了一個與服務端相匹配的客戶端終結點,該終結點上應用了一個WebHttpBehavior終結點行為。WebHttpBehavior可以說是整個Web HTTP編程模型的核心,絕大部分針對Web的支持都是通過該行為實現的。實際上服務端終結點通過WebServiceHost應用了這個終結點行為。

      1: using(ChannelFactory channelFactory = new ChannelFactory("employeeService"))

      2: {

      3: IEmployees proxy = channelFactory.CreateChannel();

      4:

      5: Console.WriteLine("所有員工列表:");

      6: Array.ForEach(proxy.GetAll().ToArray(),employee=>Console.WriteLine(employee));

      7:

      8: Console.WriteLine("\n添加一個新員工(003):");

      9: proxy.Create(new Employee

      10: {

      11: Id = "003",

      12: Name = "王五",

      13: Grade = "G9",

      14: Department = "行政部"

      15: });

      16: Array.ForEach(proxy.GetAll().ToArray(),employee => Console.WriteLine(employee));

      17:

      18: Console.WriteLine("\n修改員工(003)信息:");

      19: proxy.Update(new Employee

      20: {

      21: Id = "003",

      22: Name = "王五",

      23: Grade = "G11",

      24: Department = "銷售部"

      25: });

      26: Array.ForEach(proxy.GetAll().ToArray(), employee => Console.WriteLine(employee));

      27: Console.WriteLine("\n刪除員工(003)信息:");

      28:

      29: proxy.Delete("003");

      30: Array.ForEach(proxy.GetAll().ToArray(), employee => Console.WriteLine(employee));

      31: }

      服務調用程序如上所示,我們模擬了員工的添加、修改和刪除。程序之后會在客戶端控制臺產生如下的輸出。

      所有員工列表:

      1: 所有員工列表:

      2: ID: 001 姓名: 張三 級別: G7 部門: 開發

      3: ID: 002 姓名: 李四 級別: G6 部門: 人事部

      4:

      5: 添加一個新員工(003):

      6: ID: 001 姓名: 張三 級別: G7 部門: 開發部

      7: ID: 002 姓名: 李四 級別: G6 部門: 人事部

      8: ID: 003 姓名: 王五 級別: G9 部門: 行政部

      9:

      10: 修改員工(003)信息:

      11: ID: 001 姓名: 張三 級別: G7 部門: 開發部

      12: ID: 002 姓名: 李四 級別: G6 部門: 人事部

      13: ID: 003 姓名: 王五 級別: G11 部門: 銷售部

      14:

      15: 刪除員工(003)信息:

      16: ID: 001 姓名: 張三 級別: G7 部門: 開發部

      17: ID: 002 姓名: 李四 級別: G6 部門: 人事部

      從編程角度來看,我們采用與SOAP服務完全一樣的服務調用方式,那么如何反映出服務調用基于Web的本質呢?首先,之前我們能夠通過瀏覽器訪問GetAll和Get兩個操作可以證明這兩個服務操作是基于HTTP-GET的,返回的數據直接以單純的XML返回,并沒有封裝成SOAP。為了證明Create、Update和Delete也是完全基于Web的,我們可以通過Fiddler來分析HTTP請求的內容。

      如下所示的三段XML片斷分別對應著針對上述三個服務操作調用的HTTP請求消息,從這我們可以看出它們就是單純的針對PUT、POST和DELETE方法的HTTP請求,而傳輸給服務端的數據直接作為消息的主體,并沒有封裝成SOAP消息。

      1: Create:

      2: PUT http://jinnan-pc:3721/employees/ HTTP/1.1

      3: Content-Type: application/xml; charset=utf-8

      4: Host: jinnan-pc:3721

      5: Content-Length: 187

      6: Expect: 100-continue

      7: Accept-Encoding: gzip, deflate

      8:

      9: 銷售部G11003王五

      10:

      11: Update:

      12: POST http://jinnan-pc:3721/employees/ HTTP/1.1

      13: Content-Type: application/xml; charset=utf-8

      14: Host: jinnan-pc:3721

      15: Content-Length: 186

      16: Expect: 100-continue

      17: Accept-Encoding: gzip, deflate

      18:

      19: 行政部G9003王五

      20:

      21: Delete:

      22: DELETE http://jinnan-pc:3721/employees/003 HTTP/1.1

      23: Content-Type: application/xml; charset=utf-8

      24: Host: jinnan-pc:3721

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>