qq_57935926 2022-05-14 16:23 采纳率: 100%
浏览 30
已结题

C#winfrom 通过“互亿无线”发送短线验证,收不到验证码

已在互亿无线注册,收不到验证码: 写的代码是这样的
string PostUrl = "http://106.ihuyi.com/webservice/sms.php?method=Submit%22;
//登录“互亿无线网站”查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
string account = "C82474379";
//登录“互亿无线网站”查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
string password = "422c46e72e480c4869fbba175de921c8";
//接收短信的用户的手机号码
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;
            //访问失败
        }
  • 写回答

1条回答 默认 最新

  • 腐骨穿心 2022-05-14 16:57
    关注

    手机号得是正确的吧,登录短信接口的后台看看有没有发送成功的记录啊
    还有接口返回的数据,你需要处理里面返回的代码来确定是否发送成功了,而不是用StatusCode
    StatusCode只是标识你这条请求成功没有,也就是对方有没有应答,但是具体短信发送的结果在返回的内容里
    https://www.ihuyi.com/demo/sms/aspx.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月14日

悬赏问题

  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗