2017-05-18 15 views
0

私は、オフィスでアクセスポイント(AP)をPython経由でHTTP Postメソッドで設定しようとしています。PythonでHTTPポストを行うことができません

私はPython HTTP認証コードでAPにログインできましたが、APの無線ページをクリックしてAP SSID、チャンネル、およびパスフレーズなどの入力を行うと、この時点で固まってしまいました。ワイヤレスページの最後に適用ボタンがあります。

私は以下のコードを使ってこれをしようとしていますが、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 unauthorized。同じ認証コードを使用してAPにログインできますが、ここで認証をクリアできない理由はありません。あなたのケースでは

+1

唯一のセキュリティ手段として基本認証を必要とするAPは、セキュリティ上の大きなリスクになります。だから私はXSRFのクッキー、セッション、または類似のようなより多くのセキュリティ機能があると思います。 –

答えて

0

、あなたは、あなたが成功したPOSTリクエストを行うことができます

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

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

を変更する必要があります。

詳細なチュートリアルはrequests documentを参照してください。

urllib2をコードに置き換えても、requestsを使用してコードを置き換えることができます。

+0

こんにちは、私はデータ、つまりr = requests.post(リンク、データ=ペイロード)でも試してみましたが、動作していません。 –

+0

次に、許可を得ることができないという問題があります。 必要な権限の種類を把握してください – mhchia

関連する問題