【发布时间】:2017-09-14 12:12:06
【问题描述】:
我有这个脚本在 Python 2.7 中使用了 treq,但它没有发出请求:
from twisted.internet import reactor
import time,hashlib,urllib2,json,treq
PasswordStart = 0
executed = []
def done(response):
if response.code == 200:
sys.stdout.write( Password )
reactor.stop()
while PasswordStart<10001:
if PasswordStart not in executed and PasswordStart<10001:
executed.append(PasswordStart)
UserAgent = "Samsung Galaxy S8 - 7.0.0"
Username = "JamesRicky"
RegD = time.strftime("%Y-%m-%d")
Password = str(PasswordStart).zfill(4)
HASH = hashlib.md5()
HASH.update(time.strftime("%Y-%m-%d")+Password)
url = "http://example.com/info"
data = {'Password': Password, 'RegDate': RegD, 'UserName': Username}
headers = {'Content-type': 'application/json', 'Accept-encoding': 'gzip, deflate', 'Accept': '*/*', 'Reg-Date': RegD, 'User-Agent': UserAgent, 'Secret-Key': HASH.hexdigest()}
d = treq.post(url, data=json.dumps(data), headers=headers)
d.addCallback(done)
PasswordStart+=1
reactor.run()
为什么它不起作用?
我的代码应该做的是运行这个发布请求,每个请求都应该有一个 4 位密码 (0000...9999)。每次循环运行时:
如果 PasswordStart 未执行且 PasswordStart
它应该在执行的数组中添加循环号(PasswordStart),因此它不会重复运行相同的数字两次。然后它将生成变量,然后进行连接。它保存响应并在最后检查响应。如果 response.code == 200,那么它将打印出密码。否则,它将继续循环并添加 i+1 和 PasswordStart+1。
为什么这不起作用?
【问题讨论】:
-
您是否收到任何错误消息?你有没有做任何事情来缩小问题所在?
-
你看过What topics can I ask about here? - 它说“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现错误所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。"
-
使用打印语句。
-
我没有收到任何错误消息,但我已经清楚地解释了它应该做什么。程序运行,但不与请求的 URL 建立任何连接。
-
@Elan 我在循环底部尝试了 Print PasswordStart,它给了我以下输出: 1 这意味着它没有通过循环。
标签: python python-2.7 twisted