4
POST https://maxcvservices.dnb.com/rest/Authentication
x-dnb-user: MyUsername
x-dnb-pwd: MyPassword

D&B API のドキュメントであるため、次のコード行を使用して python requests モジュールを使用して POST 要求を送信しようとしています。

r = requests.post('https://maxcvservices.dnb.com/rest/Authentication',params={'x-dnb-user':userid,'x-dnb-pwd':pass})

私が得ている応答はResponse [500]

応答の内容は次のとおりです。error processing request\r\n

私の質問は、投稿リクエストとパラメーターを渡すときに何か間違ったことをしているのか、それともユーザー名とパスワードが無効であることに問題があるのか​​ということです。

API が間違ったユーザー ID に対して別のエラー 401 で応答するため、POST 要求を渡す方法に問題があると感じています。

{'connection': 'Keep-Alive',
 'content-encoding': 'gzip',
 'content-length': '46',
 'content-type': 'text/plain',
 'date': 'Sat, 26 Oct 2013 17:43:22 GMT',
 'server': '',
 'vary': 'Accept-Encoding',
 'x-correlationid': 'Id-d4c07ad3526bff3a03fb742e 0'}

私が使用するときの私の応答ヘッダー:

r = requests.post('https://maxcvservices.dnb.com/rest/Authentication', headers={'x-dnb-user': 'userid', 'x-dnb-pwd': 'password'})

ランダムなユーザー ID とパスワード。

しかし、APIによると、私は受け取ることになっています<Response [401]>。代わりに受け取り<Response [500]>ます。

4

1 に答える 1

5

これらは HTTP ヘッダーです。APIドキュメントを引用:

D&B Direct サービスへの安全なアクセスは、認証トークンを使用して管理されます。認証トークンは、HTTP POST 要求を認証サービス URL に送信し、HTTP ヘッダーで有効なユーザー名とパスワードを渡すことで取得できます。

次のように追加します。

r = requests.post(
    'https://maxcvservices.dnb.com/rest/Authentication',
    headers={'x-dnb-user': userid, 'x-dnb-pwd': password})

これは私にとってはうまくいきますが、401 応答が返されます (有効な資格情報がないため)。

>>> import requests
>>> requests.__version__
'2.0.0'
>>> r = requests.post('https://maxcvservices.dnb.com/rest/Authentication',
...                   headers={'x-dnb-user': 'userid', 'x-dnb-pwd': 'password'})
>>> r
<Response [401]>
>>> r.headers['authorization']
'INVALID CREDENTIALS'

完全に文書化されているとおり。

于 2013-10-26T17:31:07.247 に答える