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

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 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)