2016-08-08 5 views
2

私は現在、Pythonとリクエストライブラリを介して共有ポイントのAPIにアクセスしようとしています。 Firebug経由でリクエストを調べたところ、NTLM認証を使用していたので、requests_ntlmプラグインをインストールしましたが、まだ401エラーが表示されています。私はちょうど参照するようになっているもののドメインで混乱していますpython-requestsライブラリを使用している場合、特にNTLM認証のためのドメインは必要ですか?

requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD')) 

私は解決策がNTLM認証を使用するには、このポスト、How to access a sharepoint site via the REST API in Python?、出くわしたことはこれです。私はそれがちょうど私のsite_urlだろうと思ったが、それでも動作しません。スレッドで示されているように2つのスラッシュを使用して書式を試しましたが、ここで参照されているように1つのバックスラッシュとしても使用しています。https://curl.haxx.se/mail/lib-2005-11/0086.html NTLMを使用する場合は

、ユーザー 名にそれを先頭に追加し、前方(/)または バックスラッシュ(\)で、ドメイン名とを分離することにより、ドメインを設定することができます。このように: "domain/user:password"または "domain \ user:password"。一部のHTTPサーバー(Windowsの場合)は、基本認証の場合でも このスタイルをサポートしています。

import requests 
from requests_ntlm import HttpNtlmAuth 

username = "user" 
password = "pass" 
site_url = "https://sharepoint.site.com/foo/" 
r = requests.get(site_url, auth=HttpNtlmAuth(site_url + username, password) 
print(r.status_code) 

私はちょうどそれが面白いそれがrequest.getに明示的なサンプルのURLを与えるが、単に認証パラメータに任意の「DOMAIN」を与えることを見つけます。同じことがここで見リクエスト-NTLMライブラリのドキュメントのために行く:https://github.com/requests/requests-ntlm:私は推測している

requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password')) 

私は、ユーザー名を台無しに構文を持っているが、私は、問題はかなりよく分かりません。

答えて

0

「ドメイン」パラメータは必須ではないように見えます。http://blog.carg.io/listing-and-updating-a-sharepoint-list-in-python/実際には、私は自分のコードからそれを捨てるまで401エラーを受け取りました。試してみてください:requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('USERNAME','PASSWORD'))

関連する問題