相关疑难解决方法(0)

无法使用Python将身份验证信息传递给NetSuite的REST接口

我一直试图让NetSuite Restlet与Python 3.3一起使用urllib,但我似乎无法获得授权并不断返回urllib.error.HTTPError: HTTP Error 401: Authorization Required错误.

身份验证在哪里出错?

我的测试代码如下:

import urllib.request

url = 'https://rest.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=15&recordtype=salesorder&id=123456789'

authorization = 'NLAuth nlauth_account=111111,nlauth_email=email@email.com,nlauth_signature=password,nlauth_role=3' 

req = urllib.request.Request(url)
req.add_header('Authorization', authorization)
req.add_header('Content-Type','application/json')
req.add_header('Accept','*/*')
response = urllib.request.urlopen(req)
the_page = response.read()
Run Code Online (Sandbox Code Playgroud)

作为参考,NetSuite的REST帮助用于构建授权字符串以及位于此处的 urllib上的Python文档

- 编辑 -

通过REST控制台传递(和工作)的标题如下所示:

Accept: application/json
Authorization: NLAuth nlauth_account=111111,nlauth_email=user@email.com,nlauth_signature=password,nlauth_role=3
Connection: keep-alive
Content-Type: application/xml
Origin: chrome-extension: //rest-console-id
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

从Python输出的标题显示为:

{'Content-type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'NLAuth nlauth_account=111111,nlauth_email=email@email.com,nlauth_signature=password,nlauth_role=3'}
Run Code Online (Sandbox Code Playgroud)

仍然不确定为什么它不起作用....

python netsuite

4
推荐指数
1
解决办法
7694
查看次数

标签 统计

netsuite ×1

python ×1