首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下
1、生成4位数字验证码
def createPhoneCode(session): chars=['0','1','2','3','4','5','6','7','8','9'] x = random.choice(chars),random.choice(chars),random.choice(chars),random.choice(chars) verifyCode = "".join(x) session["phoneVerifyCode"] = {"time":int(time.time()), "code":verifyCode} return verifyCode
2、发送给外部短信接口(post方式)
def sendTelMsg(msg, phoneID): SendTelMsgUrl="http://www.810086.com.cn/jk.aspx" params = {"zh":"china", "mm":"china@10086", "hm":phoneID,"nr":msg,"sms_type":88} postData=urllib.urlencode(params) req = urllib2.Request(SendTelMsgUrl, postData) req.add_header('Content-Type', "application/x-www-form-urlencoded") respone = urllib2.urlopen(req) res = respone.read() return res
其中session参数是django urls.py 后台方法 以request.session传入
3、前端js
$("button[name=getVerifyBt]").bind("click", function(){ var self = this; var userPhoneEl = $("input[name=phoneNum]"); var userPhone = $.trim(userPhoneEl.val()); if (userPhone == ""){ alert("请填写号码!"); return; } $.get("/getPhoneVerifyCode/"+userPhone + "/") .success(function(msg){ console.info(msg); var ddEl = $(self).siblings("dd.showTag"); if(msg == "ok"){ ddEl.find("span").hide(); ddEl.find("span[name=success]").show(); }else{ ddEl.find("span").hide(); ddEl.find("span[name=error]").show(); } }) .error(function(msg){ console.info(msg); }); var step = 60; $(this).attr("disabled", true); $(this).html("重新发送"+step); var interThread = setInterval(function(){ step-=1; $(self).html("重新发送"+step); if(step <=0){ $(self).removeAttr("disabled"); $(self).html("获取验证码"); clearInterval(interThread); } }, 1000); });
下面就为大家介绍python解决接口测试获取手机验证码问题的方法:
最近在做接口测试的时候遇到一个问题,就是有个很重要的接口要用到手机短信验证码,而其他接口都依赖于这个验证码,如果没有短信验证码就不能进行下面接口的测试,所以为了定时的验证线上的接口是否正常,而且又不修改代码,所以就想到以下解决方案,如果大家有了更好方案可以一起交流分享。
Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信。
package com.example.getsms; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.text.TextUtils; import android.util.Log; public class SmsInterceptReceiver extends BroadcastReceiver { private final String TAG = "SmsRec"; private static final String SMS_EXTRA_NAME ="pdus"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String message = ""; Log.e(TAG, "free message " ); Bundle extras = intent.getExtras(); if ( extras != null ) { try { Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME ); ContentResolver contentResolver = context.getContentResolver(); Log.e(TAG, "free message " ); for ( int i = 0; i < smsExtra.length; ++i ) { SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]); String body = sms.getMessageBody().toString(); message += body; } Log.e(TAG, "free message : " + message); } catch (Exception e) { // TODO: handle exception Log.e(TAG, e.getMessage()); } } } }
AndroidManifest.xml里注册一下接收器:
<receiver android:name=".SmsInterceptReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
添加权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用。
__author__ = 'guozhenhua' #coding=utf-8 import urllib2 import os,time #解析短信验证码 os.system("adb logcat -c") cmd="adb logcat -d |findstr E/SmsRec" #time.sleep(30); while(1): smscode= os.popen(cmd).read() #print smscode if (smscode!=""): smscode=smscode.split("验证码:")[1].split(",")[0] break; print "验证码是:"+smscode
以上就是本文的全部内容,内容很丰富,但是也存在一些不足,希望大家谅解,共同学习进步。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
