http://blog.csdn.net/kingcruel/article/details/44036871
 
版权声明:本文为博主原创文章,未经博主允许不得转载。
 
- ======================================================================================================================================  
- public static void Method1()  
- {  
-     try  
-     {  
-         string domain = "http://192.168.1.6:8098/";  
-         string url = domain + "/Signin/LoginApi";  
-         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);  
-         request.Method = "POST";  
-         request.ContentType = "application/x-www-form-urlencoded";  
-         request.ReadWriteTimeout = 30 * 1000;  
-   
-         
-         Dictionary<String, String> dicList = new Dictionary<String, String>();  
-         dicList.Add("UserName", "test@qq.com");  
-         dicList.Add("Password", "000000");  
-         String postStr = buildQueryStr(dicList);  
-         byte[] data = Encoding.UTF8.GetBytes(postStr);  
-   
-         request.ContentLength = data.Length;  
-   
-         Stream myRequestStream = request.GetRequestStream();  
-         myRequestStream.Write(data, 0, data.Length);  
-         myRequestStream.Close();  
-   
-         HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
-         StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);  
-         var retString = myStreamReader.ReadToEnd();  
-         myStreamReader.Close();  
-     }  
-     catch (Exception ex)  
-     {  
-         log.Info("Entered ItemHierarchyController - Initialize");  
-         log.Error(ex.Message);  
-     }  
- }  
- ======================================================================================================================================  
 
 
升级版本,提取到帮助类,封装对象
 
- using System;  
- using System.Collections.Generic;  
- using System.Configuration;  
- using System.IO;  
- using System.Net;  
- using System.Text;  
- using System.Web;  
-   
- namespace CMS.Common  
- {  
-     public class MyHttpClient  
-     {  
-         public string methodUrl = string.Empty;  
-         public string postStr = null;  
-   
-         public MyHttpClient(String methodUrl)  
-         {  
-             this.methodUrl = methodUrl;  
-         }  
-   
-         public MyHttpClient(String methodUrl, String postStr)  
-         {  
-             
-             
-   
-             this.methodUrl = methodUrl;  
-             this.postStr = postStr;  
-         }  
-   
-         
-         
-         
-         
-         public String ExecuteGet()  
-         {  
-             HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(this.methodUrl);  
-             myRequest.Method = "GET";  
-   
-             HttpWebResponse myResponse = null;  
-             try  
-             {  
-                 myResponse = (HttpWebResponse)myRequest.GetResponse();  
-                 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);  
-                 string content = reader.ReadToEnd();  
-                 return content;  
-             }  
-             
-             catch (WebException e)  
-             {  
-                 myResponse = (HttpWebResponse)e.Response;  
-                 using (Stream errData = myResponse.GetResponseStream())  
-                 {  
-                     using (StreamReader reader = new StreamReader(errData))  
-                     {  
-                         string text = reader.ReadToEnd();  
-   
-                         return text;  
-                     }  
-                 }  
-             }  
-         }  
-   
-         
-         
-         
-         
-         public string ExecutePost()  
-         {  
-             string content = string.Empty;  
-   
-             Random rd = new Random();  
-             int rd_i = rd.Next();  
-             String nonce = Convert.ToString(rd_i);  
-             String timestamp = Convert.ToString(ConvertDateTimeInt(DateTime.Now));  
-             String signature = GetHash(this.appSecret + nonce + timestamp);  
-   
-             try  
-             {  
-                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.methodUrl);  
-                 request.Method = "POST";  
-                 request.ContentType = "application/x-www-form-urlencoded";  
-                 request.Headers.Add("Nonce", nonce);  
-                 request.Headers.Add("Timestamp", Convert.ToString(StringProc.ConvertDateTimeInt(DateTime.Now)));  
-                 request.Headers.Add("Signature", signature);  
-                 request.ReadWriteTimeout = 30 * 1000;  
-   
-                 byte[] data = Encoding.UTF8.GetBytes(postStr);  
-                 request.ContentLength = data.Length;  
-   
-                 Stream myRequestStream = request.GetRequestStream();  
-   
-                 myRequestStream.Write(data, 0, data.Length);  
-                 myRequestStream.Close();  
-   
-                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
-                 StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);  
-                 content = myStreamReader.ReadToEnd();  
-                 myStreamReader.Close();  
-             }  
-             catch (Exception ex)  
-             {  
-             }  
-             return content;  
-         }  
-     }  
-   
-     public class StringProc  
-     {  
-         public static String buildQueryStr(Dictionary<String, String> dicList)  
-         {  
-             String postStr = "";  
-   
-             foreach (var item in dicList)  
-             {  
-                 postStr += item.Key + "=" + HttpUtility.UrlEncode(item.Value, Encoding.UTF8) + "&";  
-             }  
-             postStr = postStr.Substring(0, postStr.LastIndexOf(‘&‘));  
-             return postStr;  
-         }  
-   
-         public static int ConvertDateTimeInt(System.DateTime time)  
-         {  
-             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));  
-             return (int)(time - startTime).TotalSeconds;  
-         }  
-     }  
- }  
 
 
前端调用
 
- using System;  
- using System.Collections.Generic;  
- using System.Linq;  
- using System.Web;  
- using System.Web.Mvc;  
- using CMS.Common;  
- using Newtonsoft.Json;  
-   
- namespace Medicine.Web.Controllers  
- {  
-     public class DefaultController : Controller  
-     {  
-         public ActionResult Index()  
-         {  
-             #region DoGet  
-   
-             string getResultJson = this.DoGet(url);  
-             HttpClientResult customerResult = (HttpClientResult)JsonConvert.DeserializeObject(getResultJson, typeof(HttpClientResult));  
-  
-             #endregion  
-  
-             #region DoPost  
-   
-             string name = Request.Form["UserName"];  
-             string password = Request.Form["Password"];  
-   
-             Dictionary<String, String> dicList = new Dictionary<String, String>();  
-             dicList.Add("UserName", name);  
-             dicList.Add("Password", password);  
-             string postStr = StringProc.buildQueryStr(dicList);  
-   
-             string postResultJson = this.DoPost(url, postStr);  
-             HttpClientResult userResult = (HttpClientResult)JsonConvert.DeserializeObject(postResultJson, typeof(HttpClientResult));  
-  
-             #endregion  
-   
-             return View();  
-         }  
-   
-         
-         
-         
-         
-         
-         private String DoGet(string portraitUri)  
-         {  
-             MyHttpClient client = new MyHttpClient(portraitUri);  
-             return client.ExecuteGet();  
-         }  
-   
-         
-         
-         
-         
-         
-         
-         private String DoPost(string portraitUri, string postStr)  
-         {  
-             MyHttpClient client = new MyHttpClient(portraitUri, postStr);  
-             return client.ExecutePost();  
-         }  
-   
-         public class HttpClientResult  
-         {  
-             public string UserName { get; set; }  
-   
-             public bool Success { get; set; }  
-         }  
-     }  
- }  
 
 
 
 
 
【转】C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据
原文:http://www.cnblogs.com/mimime/p/5998680.html