.net 版本 极光推送 后台接口

 

.net 版本 极光推送 后台接口

public static string MD5Encrypt(string strSource)

    {

        return MD5Encrypt(strSource, 32);

    }


/// <summary>  

    /// </summary>  

    /// <param name="strSource">待加密字串</param>  

    /// <param name="length">16或32值之一,其它则采用.net默认MD5加密算法</param>  

    /// <returns>加密后的字串</returns>  

    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 = "!!!!!!!!!";//这个是一个别名  

        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;

    }  


上面的方法是放在一个文件里面的 下面是一个类


using System;  

using System.Collections.Generic;  

using System.Text;  

using System.Net.Security;  

using System.Security.Cryptography.X509Certificates;   

using System.Net;  

using System.IO;  

using System.IO.Compression;  

using System.Text.RegularExpressions; 


/// <summary>

/// HttpWebResponseUtility 的摘要说明

/// </summary>

public class HttpWebResponseUtility

{

    /// <summary>    

    /// 创建POST方式的HTTP请求    

    /// </summary>    

    /// <param name="url">请求的URL</param>    

    /// <param name="parameters">随同请求POST的参数名称及参数值字典</param>    

    /// <param name="timeout">请求的超时时间</param>    

    /// <param name="userAgent">请求的客户端浏览器信息,可以为空</param>    

    /// <param name="requestEncoding">发送HTTP请求时所用的编码</param>    

    /// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param>    

    /// <returns></returns>    

    public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int? timeout, string userAgent, Encoding requestEncoding, CookieCollection cookies)

    {

        if (string.IsNullOrEmpty(url))

        {

            throw new ArgumentNullException("url");

        }

        if (requestEncoding == null)

        {

            throw new ArgumentNullException("requestEncoding");

        }

        HttpWebRequest request = null;

        //如果是发送HTTPS请求    

        if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))

        {

            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

            request = WebRequest.Create(url) as HttpWebRequest;

            request.ProtocolVersion = HttpVersion.Version10;

        }

        else

        {

            request = WebRequest.Create(url) as HttpWebRequest;

        }

        request.Method = "POST";

        request.ContentType = "application/x-www-form-urlencoded";

        //如果需要POST数据    

        if (!(parameters == null || parameters.Count == 0))

        {

            StringBuilder buffer = new StringBuilder();

            int i = 0;

            foreach (string key in parameters.Keys)

            {

                if (i > 0)

                {

                    buffer.AppendFormat("&{0}={1}", key, parameters[key]);

                }

                else

                {

                    buffer.AppendFormat("{0}={1}", key, parameters[key]);

                }

                i++;

            }

            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; //总是接受    

    }  

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值