亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

.Net整合Json實現REST服務客戶端的方法詳解

2024-07-10 13:32:53
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹了關于.Net整合Json實現REST服務客戶端的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

一. 準備工作

  1. 點擊官網 或 本地 下載支持.Net4.0 的Json插件 Newtonsoft.Json

  2. 找到 %壓縮包%/Bin/net40/Newtonsoft.Json.dll ,在工程中引用

二. 相關代碼介紹

1. HttpClientUtil.cs  封裝REST方法

using Newtonsoft.Json;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;namespace psi.Common{ public class HttpClientUtil {  // REST @GET 方法,根據泛型自動轉換成實體,支持List<T>   public static T doGetMethodToObj<T>(string url)  {   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);   request.Method = "get";   request.ContentType = "application/json;charset=UTF-8";   HttpWebResponse response = null;   try   {    response = (HttpWebResponse)request.GetResponse();   }   catch (WebException e)   {    response = (HttpWebResponse)e.Response;    return default(T);   }   string json = getResponseString(response);   return JsonConvert.DeserializeObject<T>(json);  }  // 將 HttpWebResponse 返回結果轉換成 string   private static string getResponseString(HttpWebResponse response)  {   string json = null;   using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")))   {    json = reader.ReadToEnd();   }   return json;  }  // 獲取異常信息   private static string getRestErrorMessage(HttpWebResponse errorResponse)  {   string errorhtml = getResponseString(errorResponse);   string errorkey = "UnhandledException:";   errorhtml = errorhtml.Substring(errorhtml.IndexOf(errorkey) + errorkey.Length);   errorhtml = errorhtml.Substring(0, errorhtml.IndexOf("/n"));   return errorhtml;  }  // REST @POST 方法   public static T doPostMethodToObj<T>(string url, string jsonBody)  {   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);   request.Method = "post";   request.ContentType = "application/json;charset=UTF-8";   var stream = request.GetRequestStream();   using (var writer = new StreamWriter(stream))   {    writer.Write(jsonBody);    writer.Flush();   }   HttpWebResponse response = (HttpWebResponse)request.GetResponse();   string json = getResponseString(response);   return JsonConvert.DeserializeObject<T>(json);  }  // REST @PUT 方法   public static string doPutMethod(string url)  {   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);   request.Method = "put";   request.ContentType = "application/json;charset=UTF-8";   HttpWebResponse response = (HttpWebResponse)request.GetResponse();   using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")))   {    return reader.ReadToEnd();   }  }  // REST @PUT 方法,帶發送內容主體   public static T doPutMethodToObj<T>(string url, string jsonBody)  {   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);   request.Method = "put";   request.ContentType = "application/json;charset=UTF-8";   request.Timeout = 30 * 1000;   var stream = request.GetRequestStream();   using (var writer = new StreamWriter(stream))   {    writer.Write(jsonBody);    writer.Flush();   }   HttpWebResponse response = (HttpWebResponse)request.GetResponse();   string json = getResponseString(response);   return JsonConvert.DeserializeObject<T>(json);  }  // REST @DELETE 方法   public static bool doDeleteMethod(string url)  {   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);   request.Method = "delete";   request.ContentType = "application/json;charset=UTF-8";   HttpWebResponse response = (HttpWebResponse)request.GetResponse();   using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")))   {    string responseString = reader.ReadToEnd();    if (responseString.Equals("1"))    {     return true;    }    return false;   }  }  }}

2. 調用REST服務端方法,以Json作為數據格式

/// <summary>/// 取得升級服務端的url地址/// </summary>/// <returns></returns>private String getServerUrl(){ String result = ""; UpgraderClient upgraderClient = getUpgraderClient(); if (upgraderClient != null) {  result += "http://" + upgraderClient.serverIP +   ":" + upgraderClient.serverPort +   "/upgraderServer/service/upgrade.do"; } return result;}/// <summary>/// 測試與升級服務端的連接/// </summary>/// <returns></returns>public bool testConnect(){ FileRequest fileReq = new FileRequest(); fileReq.type = (int)RequestType.TEST_CONNECT; string jsonData = JsonConvert.SerializeObject(fileReq); FileResponse rep = null; try {  rep = HttpClientUtil.doPostMethodToObj<FileResponse>(getServerUrl(), jsonData); } catch {  throw new Exception("連接遠程服務端失?。?quot;); } return rep.status == 200;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品第二页| 91国产视频在线| 爽爽爽爽爽爽爽成人免费观看| 久久久人成影片一区二区三区| 亚洲激情在线观看视频免费| 久热精品视频在线观看一区| 亚洲欧洲日本专区| 午夜精品久久久99热福利| 久久久av亚洲男天堂| 国产精品精品国产| 中文字幕亚洲无线码a| 欧美大片在线影院| 96pao国产成视频永久免费| 日韩中文字幕网站| 日韩中文字幕在线精品| 亚洲春色另类小说| 久久影视电视剧免费网站| 亚洲成人在线网| 搡老女人一区二区三区视频tv| 亚洲精品久久在线| 亚洲精品美女久久久| 亚洲欧美一区二区三区四区| 亚洲福利视频网站| 国产成人精品电影| 国产精品福利网| 国色天香2019中文字幕在线观看| 亚洲美女激情视频| 久久久久久999| 另类色图亚洲色图| 日韩av手机在线| 91精品美女在线| 欧美成人精品在线播放| 国产精品99久久久久久久久久久久| 97精品国产97久久久久久| 国产日本欧美一区二区三区| 亚洲精品免费在线视频| 欧美极品xxxx| 国产国语刺激对白av不卡| 国产亚洲激情视频在线| 欧美特黄级在线| 国产精品久久精品| 欧美猛交ⅹxxx乱大交视频| 在线观看视频亚洲| 欧美激情喷水视频| 欧美在线视频一二三| 国产日韩在线看| 国产在线视频91| 国产69精品久久久久9| 欧美日韩亚洲国产一区| 91av网站在线播放| 中文字幕综合在线| 国产精品美女视频网站| 亚洲剧情一区二区| 在线精品高清中文字幕| 国产精品麻豆va在线播放| 亚洲激情视频在线| 国产成人精品一区| 亚洲肉体裸体xxxx137| 色偷偷偷综合中文字幕;dd| 亚洲网站在线观看| 亚洲精品国精品久久99热一| 久久久伊人欧美| 91亚洲精品久久久久久久久久久久| 日韩精品免费综合视频在线播放| 国产亚洲美女久久| 亚洲国产精品yw在线观看| 91久久精品日日躁夜夜躁国产| 亚洲欧美色图片| 日韩电影第一页| 精品女同一区二区三区在线播放| 国产精品男人爽免费视频1| 国产激情综合五月久久| 亚洲精品国产精品乱码不99按摩| 国内偷自视频区视频综合| 在线观看日韩欧美| 北条麻妃99精品青青久久| 91久久国产精品| 亚洲最大的免费| 国产亚洲视频在线观看| 美日韩在线视频| 亚洲天堂色网站| 国产美女久久精品| 亚洲第一精品自拍| 精品国产一区二区三区久久| 欧美成人午夜激情| 欧美日韩福利在线观看| 国内伊人久久久久久网站视频| 一个人www欧美| 主播福利视频一区| 一区二区国产精品视频| 日韩欧美a级成人黄色| 久久人人爽人人爽人人片av高清| 亚洲一区亚洲二区| 亚洲人成电影网站色xx| 国产精品视频中文字幕91| 午夜精品www| 精品久久久国产| 国产精品永久免费在线| 亚洲视频999| 欧美性猛交xxxx乱大交蜜桃| 亚洲成人精品久久久| 97视频网站入口| 精品欧美aⅴ在线网站| 日韩中文字幕视频| 亚洲精品在线观看www| 中文字幕日韩欧美| 中文字幕亚洲图片| 国产97免费视| 欧美成人精品三级在线观看| 美女999久久久精品视频| 日韩久久精品成人| 欧美激情欧美激情| 欧美午夜电影在线| 欧美激情第一页xxx| 高清在线视频日韩欧美| 欧美性xxxxxx| 成人有码视频在线播放| 欧美大片大片在线播放| 久久久亚洲天堂| 免费不卡欧美自拍视频| 国产精品视频久| 91美女福利视频高清| 51精品国产黑色丝袜高跟鞋| 久久精品免费电影| 亚洲精品福利在线观看| 日韩精品免费综合视频在线播放| 亚洲人成在线观看| 777午夜精品福利在线观看| 社区色欧美激情 | 不卡av电影在线观看| 色综合久久久久久中文网| 午夜免费在线观看精品视频| 久久综合色影院| 7m第一福利500精品视频| 国产精品美女主播在线观看纯欲| 91精品久久久久久久久不口人| 91精品久久久久久久久不口人| 欧美日韩加勒比精品一区| 亚洲欧美激情一区| 成人免费视频xnxx.com| 成人精品视频久久久久| 国产精品久久久久久久久久小说| 国产成一区二区| 欧美日韩在线观看视频小说| 欧美不卡视频一区发布| 亚洲色图激情小说| 亚洲日本中文字幕| 欧美在线亚洲在线| 国产精品第七影院| 亚洲第一色在线| 国内精品一区二区三区四区| 久久国产精品首页| 亚洲精品在线不卡| 精品国产91久久久久久| 美乳少妇欧美精品| 久久精品久久久久久国产 免费| 成人黄色短视频在线观看| 国产精品欧美日韩久久| 免费av一区二区| 亚洲va久久久噜噜噜| 一区二区国产精品视频| 欧亚精品在线观看| 亚洲精品一区在线观看香蕉| 久久99国产综合精品女同|