无法在Python中执行HTTP发布

时间:2017-05-18 03:36:34

标签: python http post

我正在尝试通过Python的HTTP Post方法在我的办公室配置一个接入点(AP)。

我能够通过Python HTTP身份验证代码登录到AP,但是当我点击AP的无线页面来提供AP SSID,Channel和Passphrase等输入时,我就会陷入困境。无线页面的末尾有一个应用按钮。

当我尝试使用下面提到的代码时,我没有看到任何变化在AP端反映出来。可能是我的代码错了或者我没有按照正确的程序在AP中发布数据。我该如何解决这个问题?

import urllib2
import requests

def login():
        link = "http://192.168.1.11/start_apply2.htm"
        username = 'admin'
        password = 'admin'
        p = urllib2.HTTPPasswordMgrWithDefaultRealm()
        p.add_password(None, link, username, password)
        handler = urllib2.HTTPBasicAuthHandler(p)
        opener = urllib2.build_opener(handler)
        urllib2.install_opener(opener)
        age = urllib2.urlopen(link).read()
        payload = {'wl_ssid_org': 'nick','wl_wpa_psk_org':12345678}
        r = requests.get(link)
        r = requests.get(link, params=payload)
        r = requests.post(link, params=payload)
login()

注意:当我运行此代码时,它会抛出错误:401未经授权。当我能够使用相同的身份验证代码登录AP但为什么我无法在此处清除身份验证时,我没有得到它。

1 个答案:

答案 0 :(得分:0)

在您的情况下,您应该更改

r = requests.post(link, params=payload)

r = requests.post(link, data=payload)

然后您可以成功执行POST请求。

您应该参考requests document查找更多教程。

甚至,您可以使用urllib2代码使用requests替换代码。