1414import getpass
1515
1616# Send HTTP request for all services
17+
18+
1719def doSendRequest (url , requestMsg , headers ):
1820 result = None
1921 try :
20- ##send request
21- result = requests .post (url , data = json .dumps (requestMsg ), headers = headers )
22- # print('outgoing message is %s'%(json.dumps(requestMsg)))
23- ## handle error
22+ # send request
23+ result = requests .post (
24+ url , data = json .dumps (requestMsg ), headers = headers )
25+ # print('outgoing message is %s'%(json.dumps(requestMsg)))
26+ # handle error
2427 if result .status_code is not 200 :
2528 print ('Request fail' )
26- print ('response status %s' % (result .status_code ))
27- if result .status_code == 500 : ## if username or password or appid is wrong
28- print ('Error: %s' % (result .json ()))
29+ print ('response status %s' % (result .status_code ))
30+ if result .status_code == 500 : # if username or password or appid is wrong
31+ #print('Error: %s'%(result.json()))
32+ print ('Error: %s' % (json .dumps (result .json (),
33+ sort_keys = True , indent = 2 , separators = (',' , ':' ))))
2934 result .raise_for_status ()
3035 except requests .exceptions .RequestException as e :
3136 print ('Exception!!!' )
@@ -34,39 +39,43 @@ def doSendRequest(url, requestMsg, headers):
3439 return result
3540
3641
37- ## Perform authentication
42+ # Perform authentication
3843def CreateAuthorization (username , password , appid ):
3944 token = None
40- ##create authentication request URL, message and header
41- authenMsg = {'CreateServiceToken_Request_1' : { 'ApplicationID' :appid , 'Username' :username ,'Password' :password }}
45+ # create authentication request URL, message and header
46+ authenMsg = {'CreateServiceToken_Request_1' : {
47+ 'ApplicationID' : appid , 'Username' : username , 'Password' : password }}
4248 authenURL = 'https://api.trkd.thomsonreuters.com/api/TokenManagement/TokenManagement.svc/REST/Anonymous/TokenManagement_1/CreateServiceToken_1'
4349 headers = {'content-type' : 'application/json;charset=utf-8' }
4450 print ('############### Sending Authentication request message to TRKD ###############' )
4551 authenResult = doSendRequest (authenURL , authenMsg , headers )
4652 if authenResult and authenResult .status_code == 200 :
4753 print ('Authen success' )
48- print ('response status %s' % (authenResult .status_code ))
49- ## get Token
54+ print ('response status %s' % (authenResult .status_code ))
55+ # get Token
5056 token = authenResult .json ()['CreateServiceToken_Response_1' ]['Token' ]
5157
5258 return token
5359
54- ## Perform News Headline request
60+ # Perform News Headline request
61+
62+
5563def RetrieveNewsHeadline (token , appid ):
56- ## construct news headline URL and header
64+ # construct news headline URL and header
5765 newsURL = 'https://api.trkd.thomsonreuters.com/api/News/News.svc/REST/News_1/RetrieveHeadlineML_1'
58- headers = {'content-type' : 'application/json;charset=utf-8' ,'X-Trkd-Auth-ApplicationID' : appid , 'X-Trkd-Auth-Token' : token }
59- ##construct a news headline request message
66+ headers = {'content-type' : 'application/json;charset=utf-8' ,
67+ 'X-Trkd-Auth-ApplicationID' : appid , 'X-Trkd-Auth-Token' : token }
68+ # construct a news headline request message
6069 ricName = input ('Please input Symbol: ' )
6170 newsRequestMsg = {'RetrieveHeadlineML_Request_1' : {
62- 'HeadlineMLRequest' :{
63- 'MaxCount' :10 ,
64- 'Filter' :[
71+ 'HeadlineMLRequest' : {
72+ 'MaxCount' : 10 ,
73+ 'Filter' : [
6574 {
66- 'MetaDataConstraint' :{
75+ 'MetaDataConstraint' : {
6776 'class' : 'any' ,
6877 'Value' : {
69- 'Text' : ricName
78+ 'Text' : ricName
7079 }
7180 }
7281 }
@@ -75,25 +84,25 @@ def RetrieveNewsHeadline(token, appid):
7584 }}
7685
7786 print ('############### Sending News Headline request message to TRKD ###############' )
78- newsResult = doSendRequest (newsURL , newsRequestMsg ,headers )
87+ newsResult = doSendRequest (newsURL , newsRequestMsg , headers )
7988 if newsResult and newsResult .status_code == 200 :
8089 print ('News Headline response message: ' )
81- print (newsResult .json ())
82-
90+ # print(newsResult.json())
91+ print (json .dumps (newsResult .json (), sort_keys = True ,
92+ indent = 2 , separators = (',' , ':' )))
8393
8494
8595## ------------------------------------------ Main App ------------------------------------------ ##
86-
8796if __name__ == '__main__' :
88- ## Get username, password and applicationid
97+ # Get username, password and applicationid
8998 username = input ('Please input username: ' )
90- ## use getpass.getpass to hide user inputted password
99+ # use getpass.getpass to hide user inputted password
91100 password = getpass .getpass (prompt = 'Please input password: ' )
92101 appid = input ('Please input appid: ' )
93102
94- token = CreateAuthorization (username ,password ,appid )
95- print ('Token = %s' % (token ))
103+ token = CreateAuthorization (username , password , appid )``
104+ print ('Token = %s' % (token ))
96105
97- ## if authentiacation success, continue subscribing News Headline
106+ # if authentiacation success, continue subscribing News Headline
98107 if token :
99- RetrieveNewsHeadline (token ,appid )
108+ RetrieveNewsHeadline (token , appid )
0 commit comments