using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Compression; using System.IO; using System.Net;html
namespace demo { class MD5 { public static string MD5Encrypt(string strSource) {android
return MD5Encrypt(strSource, 32);ios
}算法
/// <summary> api
/// </summary> app
/// <param name="strSource">待加密字串</param> 測試
/// <param name="length">16或32值之一,其它則採用.net默認MD5加密算法</param> ui
/// <returns>加密後的字串</returns> 加密
public static string MD5Encrypt(string strSource, int length) {spa
byte[] bytes = Encoding.ASCII.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
switch (length) {
case 16:
for (int i = 4; i < 12; i++)
sb.Append(hashValue[i].ToString("x2"));
break;
case 32:
for (int i = 0; i < 16; i++) {
sb.Append(hashValue[i].ToString("x2"));
}
break;
default:
for (int i = 0; i < hashValue.Length; i++) {
sb.Append(hashValue[i].ToString("x2"));
}
break;
}
return sb.ToString();
}
public static string doSend() {
IDictionary<string, string> parameters = new Dictionary<string, string>();
string html = string.Empty;
int sendno = 1;
string receiverValue = "eric";//這個是一個別名
int receiverType = 4;
string appkeys = "51b45123b7313212ba35123dcc7e303123257eb";
String input = sendno.ToString() + receiverType + "" + "5232135e230314a412321312bb2fb12133d27c845";
string verificationCode = MD5Encrypt(input);
string content = "{\"n_content\":\"" + receiverValue + "\",\"n_builder_id\":\"1\"}"; //發送的內容
string loginUrl = "http://api.jpush.cn:8800/sendmsg/v2/sendmsg";
parameters.Add("sendno", sendno.ToString());
parameters.Add("app_key", appkeys);
parameters.Add("receiver_type", receiverType.ToString());
parameters.Add("verification_code", verificationCode); //MD5
parameters.Add("msg_type", "1");
parameters.Add("msg_content", content); //內容
parameters.Add("platform", "android,ios");
HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, Encoding.UTF8, null);
if (response != null) {
// 獲得返回的數據流
Stream receiveStream = response.GetResponseStream();
// 若是有壓縮,則進行解壓
if (response.ContentEncoding.ToLower().Contains("gzip")) {
receiveStream = new GZipStream(receiveStream, CompressionMode.Decompress);
}
// 獲得返回的字符串
html = new StreamReader(receiveStream).ReadToEnd();
}
return html;
}
} }
byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream()) {
stream.Write(data, 0, data.Length);
}
}
return request.GetResponse() as HttpWebResponse;
}
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) {
return true; //老是接受
}
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.IO.Compression;
namespace demo { class Program { public static string MD5Encrypt(string strSource) {
return MD5Encrypt(strSource, 32);
} public static string MD5Encrypt(string strSource, int length) {
byte[] bytes = Encoding.ASCII.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
switch (length) {
case 16:
for (int i = 4; i < 12; i++)
sb.Append(hashValue[i].ToString("x2"));
break;
case 32:
for (int i = 0; i < 16; i++) {
sb.Append(hashValue[i].ToString("x2"));
}
break;
default:
for (int i = 0; i < hashValue.Length; i++) {
sb.Append(hashValue[i].ToString("x2"));
}
break;
}
return sb.ToString();
} public static string doSend() {
IDictionary<string, string> parameters = new Dictionary<string, string>();
string html = string.Empty;
int sendno = 1;
string receiverValue = "863094010028545";//這個是一個別名 若是使用別名須要加參數 parameters.Add("receiver_value", receiverValue.ToString()); 不然去掉這行代碼
int receiverType = 3;//3是使用別名,4是使用廣播
string appkeys = "6749f40904629f928a5c28e4"; string appkeysCode = "ed55187688f7ba184d34cb97";//極光推送portal 上分配的 appKey 的驗證串(masterSecret) String input = sendno.ToString() + receiverType + receiverValue + appkeysCode;
string verificationCode = MD5Encrypt(input); string strcontent = "測試"; string content = "{\"n_content\":\"" + strcontent + "\",\"n_builder_id\":\"1\"}"; //發送的內容
string loginUrl = "http://api.jpush.cn:8800/sendmsg/v2/sendmsg";
parameters.Add("sendno", sendno.ToString());
parameters.Add("app_key", appkeys);
parameters.Add("receiver_type", receiverType.ToString()); parameters.Add("receiver_value", receiverValue.ToString()); parameters.Add("verification_code", verificationCode); //MD5
parameters.Add("msg_type", "1");
parameters.Add("msg_content", content); //內容
parameters.Add("platform", "android,ios");
HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, Encoding.UTF8, null);
if (response != null) {
// 獲得返回的數據流
Stream receiveStream = response.GetResponseStream();
// 若是有壓縮,則進行解壓
if (response.ContentEncoding.ToLower().Contains("gzip")) {
receiveStream = new GZipStream(receiveStream, CompressionMode.Decompress);
}
// 獲得返回的字符串
html = new StreamReader(receiveStream).ReadToEnd();
}
Console.WriteLine("{0}", html); return html;
} static void Main(string[] args) { doSend(); Console.ReadKey(); } } }
}