Python对接互亿无线实现短信验证码发送教程

阿橙
阿橙
发布时间:2026-10-13| 4人浏览过
原创

本文介绍如何使用Python通过互亿无线(ihuyi)平台发送短信验证码。内容涵盖注册账号获取密钥、安装requests等依赖库、生成随机验证码以及调用API发送短信的完整代码示例。通过解析服务器返回状态码判断发送结果,适用于Python初学者快速掌握第三方短信接口集成方法。

Python短信验证码发送概述

在日常应用开发中,接收短信验证码是常见的交互场景。Python提供了便捷的编程方式来实现这一功能,下文将展示具体的代码实现过程。

通常,发送短信需要租用短信服务商的服务器资源。对于个人学习或测试用途,部分服务商会提供一定数量的免费短信额度。

本示例选用互亿无线平台作为短信服务供应商来演示代码实现。

互亿无线账号注册与密钥获取

首先,访问http://www.ihuyi.com/sms.html注册个人账号。注册完成后,进入个人信息页面即可获取您的账号ID和API密钥。

环境依赖与模块安装

代码运行所需导入的模块包括:


import requests,random,bs4

requests模块用于发起HTTP请求,random模块用于生成随机验证码,bs4模块用于解析服务器返回的响应数据。若本地环境未安装这些库,可打开命令行工具(cmd),执行pip install 包名命令进行安装。

生成随机验证码函数

手机验证码通常为四位随机数字,因此编写一个函数来生成该验证码,核心逻辑是利用random模块产生4位随机数并返回结果。


def create_verify_code():
  """随机产生一个4位数验证码"""
  verify_code = ''
  for i in range(4):
    verify_code += str(random.randint(0,9))
  return verify_code

调用API发送短信逻辑

随后,利用短信供应商提供的API接口发送短信。API文档可在互亿无线官网下载,或登录个人账户后台查看。

通过headers构造请求头信息,传入目标手机号和短信内容,利用requests库发送POST请求至服务器,从而获取服务器的返回信息。


def sendmessagecode(phonenum,content):
  """发送短信验证码"""
  headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
  data = {'account':account,'password':password,'mobile':phonenum,'content':content}
  return requests.post(host,data=data,headers=headers)

响应解析与状态判断

接收到服务器返回的数据后,需对响应信息进行解析,以判断短信是否发送成功。


response = sendmessagecode(phoneNum,content)  # 用response来接收响应信息

首先检查与服务器的连接状态,若连接成功则继续后续处理,否则打印连接失败的错误信息。


 if 200 == response.status_code:
   TODO...
  else:
    print('与服务器连接失败:',response.status_code)

若HTTP响应状态码表示成功,则使用BeautifulSoup解析响应文本内容。


soup = bs4.BeautifulSoup(response.text,features='lxml') # 构造soup对象
code = soup.find('code').string  
msg = soup.find('msg').string
if 2 == code: # 若服务器响应码为2,说明短信发送成功
  print('code: %s msg: %s ' %(code,msg))
else:
  print('code: %s msg: %s ' %(code,msg))

完整代码示例

完整的Python代码如下:


#! python3
# 测试发送短信,所用服务器为互亿测试账号
import requests,random,bs4
 
host = 'http://106.ihuyi.com/webservice/sms.php?method=Submit'
account = 'C27187646'
password = '64713042f161ae0555e9617afef40610'
 
def sendmessagecode(phonenum,content):
  """发送短信验证码"""
  headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
  data = {'account':account,'password':password,'mobile':phonenum,'content':content}
  return requests.post(host,data=data,headers=headers)
 
def create_verify_code():
  """随机产生一个4位数验证码"""
  verify_code = ''
  for i in range(4):
    verify_code += str(random.randint(0,9))
  return verify_code
 
if __name__ == '__main__':
  phoneNum = '159XXXXXXXX'
  code = create_verify_code()
  content = '您的验证码是:%s。请不要把验证码泄露给其他人。' %code
  response = sendmessagecode(phoneNum,content)
  print('短信内容:',content)
  if 200 == response.status_code:
    soup = bs4.BeautifulSoup(response.text,features='lxml')
    code = soup.find('code').string
    msg = soup.find('msg').string
    if 2 == code:
      print('code: %s msg: %s ' %(code,msg))
    else:
      print('code: %s msg: %s ' %(code,msg))
  else:
    print('与服务器连接失败:',response.status_code)

以上即为Python对接互亿无线实现短信验证码发送的详细教程,更多关于Python短信发送实例的资料,请参阅本站其他相关文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。