using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo1113
{
    public sealed class Program
    {
        public static void Main()
        {
            SmsMessage smsMessage = new SmsMessage();
            smsMessage.OpenId = "123";
            smsMessage.TempleaseId = "abc";
            smsMessage.MessageInfo = new List<MessageInfo> { new MessageInfo{
            Key="1",Value="q"
            },new MessageInfo{Key="2",Value="w"}};
            //Newtonsoft.Json
            string json = JsonConvert.SerializeObject(smsMessage);

SmsMessageDictionary smsMessageDictionary = new Program.SmsMessageDictionary();
            smsMessageDictionary.OpenId = "123";
            smsMessageDictionary.TempleaseId = "abc";

Dictionary<string, string> list = new Dictionary<string, string>();
            list.Add("d", "1");
            list.Add("d1", "13");
            list.Add("d2", "14");
            smsMessageDictionary.MessageInfo = list;
            Console.WriteLine("Json=" + json);
            Console.WriteLine("Json2=" + JsonConvert.SerializeObject(smsMessageDictionary));
            Console.ReadKey();

string sJson = JsonConvert.SerializeObject(smsMessage); //传入参数有误时,可能会出现"远程服务器返回错误: (500) 内部服务器错误。"的错误
            System.Text.UTF8Encoding encodeing = new UTF8Encoding();
            byte[] contentBytes = encodeing.GetBytes(sJson);
            try
            {
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://。。。。。。。。。"));
                //增加下面两个属性即可  (防止出现“基础连接已经关闭: 接收时发生错误。”的错误)
                webRequest.KeepAlive = false;
                webRequest.ProtocolVersion = HttpVersion.Version10;
                //webRequest.Proxy = new WebProxy("url", 80);
                //webRequest.UserAgent = "Mozilla-Firefox-Spider(Wenanry)";
                webRequest.Method = "POST";
                //webRequest.ContentType = "application/json";
                webRequest.ContentType = "application/json";
                webRequest.Accept = "application/json";
                webRequest.ContentLength = sJson.Length;  //这边是JSON的长度
                using (Stream newStream = webRequest.GetRequestStream())
                {
                    newStream.Write(contentBytes, 0, contentBytes.Length);   //这边读取的是字节
                }
                //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
                //HttpWebResponse res;
                //try
                //{
                //    res = (HttpWebResponse)webRequest.GetResponse();
                //}
                //catch (WebException ex)
                //{
                //    res = (HttpWebResponse)ex.Response;
                //}
                using (var response = (HttpWebResponse)webRequest.GetResponse())
                {
                    var stream = response.GetResponseStream();
                    using (var sr = new StreamReader(stream, Encoding.Default))
                    {
                        str = sr.ReadToEnd();
                    }
                    stream.Dispose();
                }
               // JObject jo = JObject.Parse(str);
              //  string err = jo["errCode"].ToString();

JObject jopdd = JObject.Parse(str);
                string err = jopdd["errorCode"].ToString();
                string errMsg = jopdd["errorMessage"].ToString();
            }
            catch (Exception e)
            {
                string aa = "aaa";
            }
        }

public class SmsMessageDictionary
        {
            public string OpenId { get; set; }
            public string TempleaseId { get; set; }
            public Dictionary<string, string> MessageInfo { get; set; }
        }
        public class SmsMessage
        {
            public string OpenId { get; set; }
            public string TempleaseId { get; set; }
            public List<MessageInfo> MessageInfo { get; set; }
        }

public class MessageInfo
        {
            public string Key { get; set; }
            public string Value { get; set; }
        }
    }
}

发送短信(string转换为JSON)的更多相关文章

  1. java + maven 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...

  2. java发送短信验证码

    业务: 手机端点击发送验证码,请求发送到java服务器端,由java调用第三方平台(我们使用的是榛子云短信http://smsow.zhenzikj.com)的短信接口,生成验证码并发送. SDK下载 ...

  3. android发送短信验证码并自动获取验证码填充文本框

    android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...

  4. java攻城师之路(Android篇)--搭建开发环境、拨打电话、发送短信、布局例子

    一.搭建开发环境 1.所需资源 JDK6以上 Eclipse3.6以上 SDK17, 2.3.3 ADT17 2.安装注意事项 不要使用中文路径 如果模拟器默认路径包含中文, 可以设置android_ ...

  5. Android 打开URL中的网页和拨打电话、发送短信功能

    拨打电话需要的权限 <uses-permission android:name="android.permission.CALL_PHONE"/> 为了省事界面都写一起 ...

  6. 移动MAS短信平台发送短信

    MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System; namespace 短信发送 { class Pr ...

  7. android: 接收和发送短信

    8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 A ...

  8. 阿里大鱼.net core 发送短信

    阿里大鱼还未提供 .net core 版SDK,但提供了相关API,下面是.net core版实现,只是简单发送短信功能: using System; using System.Collections ...

  9. 短信接口调用以及ajax发送短信接口实现以及前端样式

    我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...

  10. 如何使用微信小程序云函数发送短信验证码

    其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制. 本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,S ...

随机推荐

  1. Java:集合工具类-Collections

    Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...

  2. 循环报数 Java实现

    输入1个数字和多个字符,中间均以空格隔开.假设数字取值为m(范围1~9),后面字符个数为n.假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列.最后 ...

  3. iOS开发Swift篇—(九)属性

    iOS开发Swift篇—(九)属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个. ...

  4. Huawei校招机试中的猴子吃桃问题

    //============================================================================ // Name : Monkey& ...

  5. shell使用随笔

    001 对文件某一列求和 awk '{sum += $collum};END {print sum}' /path/to/your/file 2 3 3 5 假设文件内容如上所示: # awk '{s ...

  6. oracle 11g 一直提示 严重: 监听程序未启动或数据库服务未注册到该监听程序

    From:http://blog.sina.com.cn/s/blog_6734ea6d0102v6sn.html 增加操作系统环境变量:ORACLE_HOSTNAME=localhost 然后在cm ...

  7. css定位之浮动定位

    浮动定位可以是原本垂直排列的块级元素,变成水平排列 1浮动元素 float:left 或者float:right  这些浮动会直接碰到父容器的边界为止. 2设置了浮动的元素,元素会脱离标准文档流中,但 ...

  8. 【转】MSM搭建(Memcached_Session_Manager)--解决集群session共享

    一.环境     tomcat7三台,nginx(负载均衡),memcached(1.4.0) 需要的jar 二.memcached搭建     需要安装libevent 三.tomcat配置 在to ...

  9. Apache +Tomcat的负载均衡与集群配置

    实验拓扑图: 一.搭配环境 (1).Tomcat的安装和配置 Tomcat_a的ip:192.168.55.229 Tomcat_b的ip:192.168.55.231 Tomcat的需要安装jdk和 ...

  10. poj2502 最短路

    //Accepted 504 KB 16 ms //spfa最短路 //把n个地铁站作为n个顶点,边权为从一个站到另一个站的时间 //注意:地铁在相邻的两站之间是直线行驶,但其他的就不是了 #incl ...