C#实现向手机发送验证码短信
效果描述
当点击button1后向textbox1中输入的号码的手机发送一条验证码短信
步骤
- 注册 互亿无线 账号
- 查找APIID和APIKEY
- 窗口布局的设计布局
- 代码的书写
- 所有代码
注册 互亿无线 账号
网站:添加链接描述
查找APIID和APIKEY
窗口布局的设计布局
一个label一个textbox一个button
代码的书写
添加一个按钮点击事件
private void button1_Click(object sender, EventArgs e){if (!CallPhone(textBox1.Text.ToString())){label1.Text = "不成功";}}
新建一个发送短信的函数叫CallPhone()
private bool CallPhone(string Recipient_Mobile_Num){//string PostUrl = "http://106.ihuyi.com/webservice/sms.php?method=Submit";//登录“互亿无线网站”查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIIDstring account = "你的APIID";//登录“互亿无线网站”查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEYstring password = "你的APIKEY"; //接收短信的用户的手机号码string mobile = Recipient_Mobile_Num;//随机生成四位数 可以模仿向用户发送验证码Random rad = new Random();int mobile_code = rad.Next(1000, 10000); //生成随机数string content = "您的验证码是:" + mobile_code + " 。请不要把验证码泄露给其他人。";string postStrTpl = "account={0}&password={1}&mobile={2}&content={3}"; //用户名+密码+注册的手机号+验证码UTF8Encoding encoding = new UTF8Encoding(); //万国码//将 account, password, mobile, content 这四个内容添加到postStrTpl字符串当中//并利用encoding.GetBytes()将括号里面的字符串转化为二进制类型byte[] postData = encoding.GetBytes(string.Format(postStrTpl, account, password, mobile, content)); //将字符串postStrTpl中的格式项替换为四个个指定的 Object 实例的值的文本等效项。再转为二进制数据//新建一个请求对象HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(PostUrl);//对统一资源标识符 (URI) 发出请求。 这是一个 abstract 类。myRequest.Method = "POST";myRequest.ContentType = "application/x-www-form-urlencoded";myRequest.ContentLength = postData.Length;Stream newStream = myRequest.GetRequestStream();//间postData合并到 PostUrl中去newStream.Write(postData, 0, postData.Length);newStream.Flush();newStream.Close();//以http://106.ihuyi.com/webservice/sms.php?method=Submit&account=你的APIID&password=你的APIKEY&mobile=接收短信的用户的手机号码&content=您的验证码是:" + mobile_code + " 。请不要把验证码泄露给其他人。" 发起https请求 并获取请求结果HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();if (myResponse.StatusCode == HttpStatusCode.OK){return true;}else{return false;//访问失败}}
所有代码
注意需要修改的地方
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;using System.IO;
using System.Net;namespace Sing_In
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){if (!CallPhone(textBox1.Text.ToString())){label1.Text = "不成功";}}private bool CallPhone(string Recipient_Mobile_Num){string PostUrl = "http://106.ihuyi.com/webservice/sms.php?method=Submit";//登录“互亿无线网站”查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIIDstring account = "你的APIID";//登录“互亿无线网站”查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEYstring password = "你的APIKEY"; //接收短信的用户的手机号码string mobile = Recipient_Mobile_Num;//随机生成四位数 可以模仿向用户发送验证码Random rad = new Random();int mobile_code = rad.Next(1000, 10000); //生成随机数string content = "您的验证码是:" + mobile_code + " 。请不要把验证码泄露给其他人。";string postStrTpl = "account={0}&password={1}&mobile={2}&content={3}"; //用户名+密码+注册的手机号+验证码UTF8Encoding encoding = new UTF8Encoding(); //万国码//将 account, password, mobile, content 这四个内容添加到postStrTpl字符串当中//并利用encoding.GetBytes()将括号里面的字符串转化为二进制类型byte[] postData = encoding.GetBytes(string.Format(postStrTpl, account, password, mobile, content)); //将字符串postStrTpl中的格式项替换为四个个指定的 Object 实例的值的文本等效项。再转为二进制数据//新建一个请求对象HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(PostUrl);//对统一资源标识符 (URI) 发出请求。 这是一个 abstract 类。myRequest.Method = "POST";myRequest.ContentType = "application/x-www-form-urlencoded";myRequest.ContentLength = postData.Length;Stream newStream = myRequest.GetRequestStream();//间postData合并到 PostUrl中去newStream.Write(postData, 0, postData.Length);newStream.Flush();newStream.Close();//以http://106.ihuyi.com/webservice/sms.php?method=Submit&account=你的APIID&password=你的APIKEY&mobile=接收短信的用户的手机号码&content=您的验证码是:" + mobile_code + " 。请不要把验证码泄露给其他人。" 发起https请求 并获取请求结果HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();if (myResponse.StatusCode == HttpStatusCode.OK){return true;}else{return false;//访问失败}}}
}
C#实现向手机发送验证码短信相关推荐
- Java-SpringBoot发送验证码短信
发送注册验证码 * 验证码需求: * 1.后台随机产生4个字符 * 2.1分钟以内只能发送1次验证码 * 3.超过1分钟,但在5分钟以内,发送的验证码依然是第一次产生的验证码字符 * 4.超过了5分钟 ...
- 网易云信,发送验证码短信C#版代码
网易云信,发送验证码短信C#版代码 网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collection ...
- Python发送验证码短信
Python发送验证码短信 前提条件 相关介绍 实验环境 发送验证码短信 账户注册 查看用户名 查看密码 主要步骤 代码实现 输出结果 前提条件 熟悉Python基本语法 相关介绍 Python是一种 ...
- 网易云发送验证码短信,发送通知短信,java版
网易云中的短信服务 发送验证码短信,创建 MobileMessageSend : import java.io.IOException; import java.util.ArrayList; im ...
- 如何通过阿里云短信服务来发送验证码短信(超详细)
通过阿里云来创建自己产品的验证码 目录 通过阿里云来创建自己产品的验证码 前言: 一:注册阿里云账号 二:开通阿里云短信服务 三:测试类文件的编写 四:测试 后续:动态验证码的生成 前言: 短信验证码 ...
- APP、网站等注册、登录、改密等发送验证码短信的接入流程---创蓝253云通讯
1.登录 https://zz.253.com/site/login.html 2.获取接口API账号,密码:选择任意产品>激活>企业认证(上传公司营业执照) 3.申请签名(以公司简称或缩 ...
- php发送验证码短信,php发送短信验证码
业务: 手机端点击发送验证码,请求发送到php端,由php调用第三方平台(我们使用的是榛子云短信http://smsow.zhenzikj.com)的短信接口,生成验证码并发送. 在"我的应 ...
- 秒嘀发送验证码短信类php
<?php namespace app\common\controller;class Miaodi {//秒嘀配置private $miaodi_url = "https://api ...
- 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法
今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...
最新文章
- 仿射加密简述和Win32版本实现
- 比较简单的在线图像编辑软件:觉得还行
- Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换
- 苹果6屏幕多大_苹果12使用高通X55,10亿买下的英特尔基带何时能派上用场
- ConcurrentDictionary的ToDictionary
- LeetCode 876. 链表的中间结点(快慢指针)
- QTcrateor 编译 ROS
- DPDK 绑定网卡之后的解绑
- vscode go开发staticcheck配置
- int与string互转
- 字节跳动辟谣“出售AI技术”和“成立打车项目”;GitHub 因代码版权问题遭抵制;贝佐斯正式卸任亚马逊 CEO|极客头条...
- Linux环境下实现简单进度条
- 单片机c语言必背代码_单片机编程用C语言还是汇编?
- java t输出_java --输入输出
- Mac OSX 常用软件下载页面集锦(持续更新)
- VMWare16下载安装Centos7镜像教程,详细记录
- 最简单的python爬虫案例,适合入门学习
- C语言程序设计勾股数,打印出100内的所有的勾股数(用C语言实现)
- web python 取代js_web前端:JavaScript,只有你想不到
- 1111111111
热门文章
- python海龟画哆啦a梦_python 海龟绘图画哆啦A梦
- QQ隐藏福利一------------------------文件极速下载
- python怎样分析文献综述怎么写_本科毕业论文如何撰写文献综述
- 名帖296 傅山 行书《行书帖选》
- 【开心一刻】又想让马儿跑,又不给马儿吃草!
- linux vim 命令无效,Linux vim 命令 command not found vim 命令详解 vim 命令未找到 vim 命令安装 - CommandNotFound ⚡️ 坑否...
- 最大团问题(使用递归和非递归两种方法)
- Vivado使用技巧(17):时序异常 Timing Exception
- SystemVerilog验证教程(二)--SystemVerilog Interface 和 Timing Region
- FFmpeg入门详解之11:H264BSAnalyzer简介