Way2SMS python代码未发送短信,而POSTS返回成功 [英] Way2SMS python code not sending SMS whereas POSTS returns Success

查看:85
本文介绍了Way2SMS python代码未发送短信,而POSTS返回成功的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到POST请求的成功状态代码,登录正常,但未发送SMS 我已经遍历了Internet上的所有代码,因为该网站更改了代码,所以其中大多数已经过时了.

I get Successful status code for my POST requests , Login is working fine , but the SMS is not sent I have gone through all codes on internet, most of them are out-dated, as the site has changed its code.

    import requests as req

    def login_way2sms():
        with req.Session() as mySession:

            url = 'http://www.way2sms.com/re-login'
            home_url = 'http://www.way2sms.com/'
            mobile = [your registered  mobile number]
            password = [your password]
            headers = dict(Referrer="http://www.way2sms.com/")
            before = mySession.get(home_url)
            login_data = dict(mobileNo=mobile, password=password, CatType='', redirectPage='', pid='')
            mySession.post(url, data=login_data, headers=headers)
            after = mySession.get(home_url)
            return mySession

    def send_msg(mysession): #saw sendsms-toss in Inspect under Network tab
            url = 'http://www.way2sms.com/smstoss'
            home_url = 'http://www.way2sms.com/'
            sms_url = 'http://www.way2sms.com/send-sms'
            group_contact_url = 'http://www.way2sms.com/GroupContacts'
            web_msg_count_url = 'http://www.way2sms.com/CheckWebMsgCount'

            headers = dict(Referrer="http://www.way2sms.com/send-sms")
            before = mysession.get(home_url)
            token = '2B7CF7C9D2F14935795B08DAD1729ACF'
            message = 'How to make this work?'
            mobile = '[a valid phone number]'
            ssaction = 'undefined'
            senderid = 'WAYSMS'
            msg_data = dict(Token=token, message=message, toMobile=mobile, ssaction=ssaction, senderId=senderid)

            mysession.post(url, data=msg_data, headers=headers)
            after = mysession.get(home_url)

            mysession.post(group_contact_url, headers=headers)
            group_contacts = mysession.get(sms_url)

            mysession.post(web_msg_count_url, headers=headers)
            web_msg_count = mysession.get(sms_url)

    # last 2 POST requests send after clicking the Send Msg button

    def main():
        login_way2sms() #login using username and password 
        send_msg(currsession) #send sms 


    main()

推荐答案

我终于理解正确了,感谢您的答复.我们也可以不使用apikey和密钥来做到这一点,这里看看.而且init只是另一个脚本,其中定义了恒定的url和登录名,

I finally got it right , Thanks for replying. We can do it without using the apikey and secret keys as well, Here take a look at this. And init is just another script where constant urls and login is defined, nothing much there.

import requests as req
import init


def login_way2sms(credential):
    with req.Session() as mySession:
        mobile = credential.username
        password = credential.password
        headers = dict(Referrer="http://www.way2sms.com/")
        login_data = dict(mobileNo=mobile, password=password, CatType='', redirectPage='', pid='')
        mySession.post(init.login_url, data=login_data, headers=headers)
        return mySession


def get_token(mysession):
    cookies = mysession.cookies['JSESSIONID']
    token = cookies[4:]
    return token


def send_msg(mysession, token):
    """
        :rtype: req.Session()
    """
    headers = dict(Referrer="http://www.way2sms.com/send-sms")
    message = 'Hi, I am Upgraded a little!!!'
    mobile = '[valid phone]'
    msg_data = dict(Token=token, message=message, toMobile=mobile, ssaction=init.ssaction, senderId=init.senderid)
    mysession.post(init.sms_url, data=msg_data, headers=headers)


def main():
    credential = init.enter_credentials()
    currsession = login_way2sms(credential)
    reply = currsession.get(init.home_url)
    page_content: str = str(reply.content)
    if (reply.status_code == 200) and (page_content.find('send-sms', 10, 200) != -1):
        print("Login Successful!\n")
    else:
        print("Login Failed ,  Try again\n")
        credential = init.enter_credentials()
        currsession = login_way2sms(credential)
    token = get_token(currsession)
    send_msg(currsession, token)


main()

这篇关于Way2SMS python代码未发送短信,而POSTS返回成功的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆