1

次のコードを使用して API に正しくアクセスできる小さな python スクリプトがあります。

import requests
auth = requests.auth.HTTPDigestAuth(user, password)
furl="http://10.101.0.203:8080/imcrs/plat/res/device"
r = requests.get(f_url, auth=auth )

この場合、auth オブジェクトは完全に機能します (GER 要求を送信でき、auth オブジェクトは正常に認証され、HTTP 200 応答で期待されるコンテンツを取得できます)。

PAW によって生成された Python コードを見る

def send_request():
    # My API
    # GET http://10.101.0.203:8080/imcrs/plat/res/device

    try:
        response = requests.get(
            url="http://10.101.0.203:8080/imcrs/plat/res/device",
            params={
                "resPrivilegeFilter": "false",
                "start": "0",
                "size": "10",
                "orderBy": "id",
                "desc": "false",
                "total": "false",
            },
            headers={
                "AuthorizationBasic Og==": "Basic YWRtaW46YWRtaW4=",
                "Cookie": "JSESSIONID=D1B20BF4BB2FC9F458C8A45821FE0BDB",
            },
        )
        print('Response HTTP Status Code: {status_code}'.format(
            status_code=response.status_code))
        print('Response HTTP Response Body: {content}'.format(
            content=response.content))
    except requests.exceptions.RequestException:
        print('HTTP Request failed')

PAW が認証文字列をエンコードしてヘッダーに送信しているように見えるため、すぐに 401 エラーが発生します。

ヘッダーは上記で作成した認証オブジェクトと同じですか? なぜこれが機能しないのかを理解しようとしています。

4

1 に答える 1

1

使用している作業中の python コードでは、これはpaw が現在 HTTPDigestAuth をサポートしていないHTTPDigestAuthことと同じではありません。Basic auth

于 2015-12-14T09:27:40.913 に答える