2012-07-29 149 views
1

我有一个运行PHP和CURL的应用程序。 我的想法是将应用程序移动到Python-Django-Requests。 我一直无法工作,希望你能帮我一把。 该应用程序的工作原理如下: 收集:一个数字,一条消息并通过API发送一条短信。请求模块Python

PHP代码。 http://pastebin.com/PqpBgstD

import requests 
import cookielib 
posdata = "p_num_text=00513015924048&smstemplate=&message=message_sending&txtcount=8 
      +char+%3A+1+Sms&hiddcount=152" 
jar = cookielib.CookieJar() 
user = 'xxx' 
pass = 'xxx' 
values = {'app': 'page', 'inc': 'login', 'op': 'auth_login', 
      'username': user, 'password': pass} # data login 
r = requests.post(url, data=values, cookies=jar) # Login 
values = {'app': 'menu', 'inc': 'send_sms', 
      'op': 'sendsmstopv_yes'}# values ​​to enter to send the sms 
r = requests.post(url, data=values, params=posdata, cookies=jar)# enter the area sms 
print r.content 

我怎么能在卷曲通过代码来请求?

以上代码是否正常?

回答

3

您的代码将无法正常工作,我已经把它贴在下面的更正后的代码,请注意,您不需要使用cookielib作为Requestscookie会生成一个CookieJar对象。

import requests 

url = "http://dominio.com/subdominio/index.php" 

username = 'xxx' 
password = 'xxx' 

payload = { 
    'app': 'page', 
    'inc': 'login', 
    'op': 'auth_login', 
    'username': username, 
    'password': password} 

r = requests.post(url, data=payload) # Login 

cSMS = "Sms" 

payload = { 
    'p_num_text': '00513015924048', 
    'smstemplate': '', 
    'message': 'message_sending', 
    'txtcount': '8', 
    'char': cSMS, # your php code seems to be off for this one, double check it 
    'hiddcount': '153'} 

url = "http://dominio.com/subdominio/index.php?app=menu&inc=send_sms&op=sendsmstopv_yes" 

r = requests.post(url, data=payload, cookies=r.cookies) # enter the area sms 

print r.text