I've been trying to get a NetSuite Restlet to work with Python 3.3 using urllib
, but I can't seem to get the authorization to take and continually return a urllib.error.HTTPError: HTTP Error 401: Authorization Required
error.
Where am I going wrong with authentication?
My test code is as follows:
import urllib.requesturl = 'https://rest.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=15&recordtype=salesorder&id=123456789'authorization = 'NLAuth nlauth_account=111111,[email protected],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()
For reference, NetSuite's REST help was used to build the authorization string as well as the Python docs on urllib located here
--EDIT--
The header that is passed (and works) via REST Console appears as follows:
Accept: application/json
Authorization: NLAuth nlauth_account=111111,[email protected],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
headers output from Python appear as:
{'Content-type': 'application/xml', 'Accept': 'application/json', 'Authorization': 'NLAuth nlauth_account=111111,[email protected],nlauth_signature=password,nlauth_role=3'}
still not sure why it's not working....