【问题标题】:How to send multiple post requests in same connection using python requests如何使用python请求在同一连接中发送多个post请求
【发布时间】:2015-06-01 12:04:11
【问题描述】:

为了在我的网站上自动注册用户,我正在使用

>>> r = requests.post('http://www.dakshnetworks.com:8888/accounts/signup/', data=payload)

效果很好。但是一旦用户注册,我将他引导到另一个页面,他必须在其中设置他的工作场所。所以我尝试使用

 o= requests.post('http://www.dakshnetworks.com:8888/set/', data=payload2)

但这无法设置用户返回错误 500 的工作场所

[01/Jun/2015 17:11:07] "POST /accounts/signup/ HTTP/1.1" 302 0
[01/Jun/2015 17:11:07] "GET / HTTP/1.1" 302 0
[01/Jun/2015 17:11:07] "GET /set/ HTTP/1.1" 200 26351
[01/Jun/2015 17:14:40] "POST /set HTTP/1.1" 500 75469
[01/Jun/2015 17:16:16] "POST /set/ HTTP/1.1" 500 126509

那么我该如何维护连接,以便服务器可以知道请求来自同一个用户。

【问题讨论】:

    标签: python http http-post python-requests


    【解决方案1】:

    使用Session() object 来维护cookie,以便服务器知道它仍然是同一用户:

    session = requests.Session()
    r = session.post('http://www.dakshnetworks.com:8888/accounts/signup/', data=payload)
    o = session.post('http://www.dakshnetworks.com:8888/set/', data=payload2)
    

    【讨论】:

    • 现在我意识到第二个请求应该是一个 ajax 请求。我该怎么做呢
    • @Rohit:AJAX 只是另一个请求。那里的服务器没有太大区别。
    • 即使我正在使用会话,当使用任何需要登录的方法时,它也会将我重定向到登录页面 >>> session = requests.session() >>> e= session.get(' dakshnetworks.com:8888/accounts/login', auth=('48948' , 'password')) >>> i = session.get('dakshnetworks.com:8888/user/set_interests')
    • 那是使用Basic Auth,你确定网站没有使用登录表单吗?
    • 如果 Basic Auth 有效,请为每个请求使用该用户名和密码,或使用session.auth = ('48948', 'password') 使会话每次都发送它。
    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2012-11-10
    • 1970-01-01
    • 2018-04-20
    • 2018-10-29
    相关资源
    最近更新 更多