python
  • python-requests
  • basic-authentication
  • 2017-02-15 11 views 0 likes 
    0

    ファイルをWebDav対応URLに入れようとしています。 コードは次のようになります。python 3 requests.putを使用して401を取得しています

    headers = {'Authorization':'Basic', 'username': 'doc_iconx', 'password': 'doc_iconx'} 
        id = "SOMEID" 
        pw = "SOMEPW" 
        try: 
         url = 'https://mywebsite.com/Dir/' 
         files = {'upload_file': open(fileName, 'rb')} 
         r = requests.put(url,auth=HTTPDigestAuth(id,pw), files=files, headers={'User-Agent': 'Mozilla' 
        }) 
    

    は、私が戻って取得:

    <title>401 Unauthorized</title> 
    </head><body> 
    <h1>Unauthorized</h1> 
    <p>This server could not verify that you 
    are authorized to access the document 
    requested. Either you supplied the wrong 
    credentials (e.g., bad password), or your 
    browser doesn't understand how to supply 
    the credentials required.</p> 
    </body></html> 
    

    私はカール

    任意のアイデアを使用してPUTを行うことができますので、ID /パスワードが良いです知っていますか?

    +0

    私が見るところでは、おそらく 'HTTPDigestAuth'の代わりに' HTTPBasicAuth'を使うべきでしょう。あなたはまた 'post'と言いますが、あなたのサンプルでは' put'をやっています。 – sal

    +0

    私の誤字を指摘してくれてありがとう。私は記述を修正しました.put。 – user3670332

    +0

    HTTPBasicAuthを使用して試行します。 409クライアントエラー:URLの競合:https://content-qa.homedepot.com/IconX/Report/ – user3670332

    答えて

    0

    あなたの認証方式は、あなたがしなければならないだろうすべてはHTTPDigestAuthの代わりにHTTPBasicAuthを使用することで、Basicを使用しているので:requestsは、実際にモードを指定しないことで、でもショートカットを持って

    r = requests.put(url,auth=HTTPBasicAuth(id,pw), files=files, headers={'User-Agent': 'Mozilla'}) 
    

    いる:

    r = requests.put(url,auth=(id,pw), files=files, headers={'User-Agent': 'Mozilla'}) 
    
    0

    私は2つの異なる問題が続いていました。 Sal、Authエラーを修正しました。 2番目のエラーは愚かなユーザーエラーでした。 URLの最後にアップロードしたいファイル名を追加する必要があります。構築された方法は、Reportという名前のファイルを作成しようとしていました。しかし、Reportは既存のディレクトリで、ファイルを書きたいと思っていました。

    +0

    うれしいことに、それはすべて動作しています。元の投稿された問題を解決したので、私の答えを受け入れることを検討してください。 – sal

    関連する問題