Here we are going to get the auth token and json object from webservice using basic auth
from System import Uri
from System.Net import HttpWebRequest
from System.IO import StringReader, StreamReader, StreamWriter, MemoryStream, SeekOrigin
#1 Data Source Settings
usr = "username@someplace.com"
pwd = "password"
url = "https://my.webservice.com/api/authenticate"
#2 Prepare and send url to server
webRequest = HttpWebRequest.Create(Uri(url))
#2.1 Add authorization to http header
authorization = usr + ":" + pwd
from System.Text.Encoding import UTF8
binaryAuthorization = UTF8.GetBytes(authorization)
from System import Convert
authorization = Convert.ToBase64String(binaryAuthorization)
authorization = "Basic " + authorization
webRequest.Headers.Add("AUTHORIZATION", authorization)
#3 Read response into memory
webRequest.Method = 'POST'
webRequest.ContentType = 'application/x-www-form-urlencoded'
webRequest.ContentLength = 0
response = webRequest.GetResponse()
streamReader = StreamReader(response.GetResponseStream())
jsonData = streamReader.ReadToEnd()
#Parse JSON. Example {code:200,data:{userId:"jleviaguirre", firstName:"Jose", lastName:"leviaguirre", authToken:"ABCD01234..."}}
import clr
clr.AddReference('System.Web.Extensions')
import System
from System.Web.Script.Serialization import JavaScriptSerializer
js = JavaScriptSerializer()
jsonObj = js.Deserialize(jsonData,object)
#parsed json data
print "http status code:",jsonObj["code"]
print "user id:",jsonObj["data"]["userId"]
print "name:", jsonObj["data"]["firstName"], jsonObj["data"]["lastName"]
print "token:",jsonObj["data"]["authToken"]
print "response data:\n",jsonData
#practical example
Document.Properties["loggedInuser"]=jsonObj["data"]["firstName"]
No comments:
Post a Comment