1 復制代碼 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using System.Configuration; 8 using System.Data.SqlClient; 9 using System.Data; 10 using System.Diagnostics; 11 using System.Net; 12 using System.IO; 13 14 namespace Sample2 15 { 16 class Program 17 { 18 static void Main(string[] args) 19 { 20 try 21 { 22 //data 23 string cookieStr = "51fd9f14fa7561b5"; 24 string postData = string.Format("userid={0}&password={1}", "guest", "123456"); 25 byte[] data = Encoding.UTF8.GetBytes(postData); 26 27 // Prepare web request... 28 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.xxx.com"); 29 request.Method = "POST"; 30 //request.Referer = "https://www.xxx.com"; 31 request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; 32 request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"; 33 //request.Host = "www.xxx.com"; 34 request.Headers.Add("Cookie", cookieStr); 35 request.ContentLength = data.Length; 36 Stream newStream = request.GetRequestStream(); 37 38 // Send the data. 39 newStream.Write(data, 0, data.Length); 40 newStream.Close(); 41 42 // Get response 43 HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse(); 44 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); 45 string content = reader.ReadToEnd(); 46 Console.WriteLine(content); 47 Console.ReadLine(); 48 } 49 catch (Exception) 50 { 51 throw; 52 } 53 } 54 } 55 } 56 復制代碼 57 復制代碼 58 /// <summary> 59 /// 調用短信接口發送短信,需配合模板 60 /// </summary> 61 /// <param name="userName">接口用戶名</param> 62 /// <param name="userPwd">接口密碼</param> 63 /// <param name="mobile">發送手機號碼</param> 64 /// <param name="content">發送內容</param> 65 /// <returns> 返回值大於0,發送成功,系統生成的任務id或自定義的任務id</returns> 66 public static string PostSms(string userName, string userPwd, string mobile, string content) 67 { 68 string srcString = "-999"; 69 try 70 { 71 string postString = string.Format("username={0}&password={1}&mobile={2}&content={3}", userName, MD5(userName + MD5(userPwd)), mobile, content); 72 byte[] postData = Encoding.UTF8.GetBytes(postString);//編碼,尤其是漢字,事先要看下抓取網頁的編碼方式 73 string url = "http://xxx/smsSend.do";//地址 74 WebClient webClient = new WebClient(); 75 webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必須加的header,如果改為GET方式的話就去掉這句話即可 76 byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流 77 srcString = Encoding.UTF8.GetString(responseData);//解碼 78 } 79 catch { } 80 return srcString; 81 } 82 復制代碼 83 復制代碼 84 class Program 85 { 86 static void Main(string[] args) 87 { 88 var str = DownloadStringAsync(new Uri("http://www.baidu.com")); 89 Console.WriteLine(str.Result); 90 Console.ReadLine(); 91 } 92 93 static async Task<string> DownloadStringAsync(Uri uri) 94 { 95 //WebClient 不支持超時設定 96 //而HttpWebRequst則允許你設置請求頭或者對內容需要更多的控制 97 var webClient = new WebClient(); 98 webClient.Encoding = System.Text.Encoding.UTF8; 99 var result = await webClient.DownloadStringTaskAsync(uri); 100 return result; 101 } 102 } 103 復制代碼