码迷,mamicode.com
首页 > 其他好文 > 详细

ServiceHelper

时间:2017-09-22 19:08:44      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:www   后台服务   ring   oca   com   urlencode   log   符号   webex   

  1     public class ServiceHelper
  2     {
  3         private static string _baseUrl = $@"http://{Config.Instance.MesServerUrl}/";
  4         private static string _sessionHeader;
  5         public static void ClearSession()
  6         {
  7             _sessionHeader = "";
  8         }
  9         public static string SessionId;
 10 
 11         public static string BaseUrl
 12         {
 13             get { return _baseUrl; }
 14             set { _baseUrl = $@"http://{value}/";} //value  包含IP和端口号 + 后台服务名, 如:localhost:8080/DadeMes
 15         } 
 16 
 17 
 18         /// <summary>
 19         /// HttpClient实现Get请求
 20         /// <param name="subUrl">子URL前面必须带 "/" 符号</param>
 21         /// </summary>
 22         public static string Get(string subUrl)
 23         {
 24             try
 25             {
 26                 using (var client = GetClient())
 27                 {
 28                     return client.DownloadString(subUrl);
 29 
 30                 }
 31             }
 32             catch (WebException)
 33             {
 34                 throw new Exception("无法连接服务器");
 35             }
 36         }
 37 
 38         /// <summary>
 39         /// Post
 40         /// </summary>
 41         /// <param name="url">子地址</param>
 42         /// <param name="strData">要传输的json字符串</param>
 43         /// <returns></returns>
 44         public static string Post(string url, string strData = "")
 45         {
 46             try
 47             {
 48                 using (var client = GetClient())
 49                 {
 50                     var postData = Encoding.UTF8.GetBytes(strData); //编码,尤其是汉字,事先要看下抓取网页的编码方式
 51                     var responseData = client.UploadData(url, "POST", postData); //得到返回字符流
 52                     if (string.IsNullOrWhiteSpace(_sessionHeader))
 53                     {
 54                         _sessionHeader = client.ResponseHeaders["Set-Cookie"];//保存session
 55                     }
 56                     return Encoding.UTF8.GetString(responseData); //解码
 57                 }
 58             }
 59             catch (WebException ex)
 60             {
 61                 throw new Exception("无法连接服务器");
 62             }
 63         }
 64 
 65         /// <summary>
 66         /// 将本地文件上传到服务器
 67         /// </summary>
 68         /// <param name="url">服务器路径</param>
 69         /// <param name="filePath">本地路径</param>
 70         /// <returns>上传成功后返回的是上文件的路径</returns>
 71         public static string UploadFile(string url, string filePath)
 72         {
 73             try
 74             {
 75                 using (var client = GetClient())
 76                 {
 77                     var responseData = client.UploadFile(url, filePath); //得到返回字符流
 78 
 79                     if (string.IsNullOrWhiteSpace(_sessionHeader))
 80                     {
 81                         _sessionHeader = client.ResponseHeaders["Set-Cookie"];//保存session
 82                     }
 83                     return Encoding.UTF8.GetString(responseData); //解码
 84                 }
 85             }
 86             catch (WebException ex)
 87             {
 88                 throw new Exception("无法连接服务器");
 89             }
 90         }
 91 
 92         private static WebClient GetClient()
 93         {
 94             return new WebClient
 95             {
 96                 //webClient.Headers.Add("Cookie",header);//在给服务器发送消息时加上这个Session值
 97                 Headers =
 98                 {
 99                     [HttpRequestHeader.UserAgent] = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)",
100                     ["DNT"] = "1",
101                     //["Content-Type"]="application/x-www-form-urlencoded",
102                     ["Content-Type"]="application/json",
103                     ["Cookie"]=_sessionHeader,
104                     ["x-requested-with"]="XMLHttpRequest",
105                 },
106                 Encoding = Encoding.UTF8,
107                 BaseAddress = BaseUrl
108             };
109         }
110     }

 

ServiceHelper

标签:www   后台服务   ring   oca   com   urlencode   log   符号   webex   

原文地址:http://www.cnblogs.com/jonney-wang/p/7576083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!