Re: [Python-Dev] Azure event hub network access

2015年2月05日 21:47:21 -0800

This would be much better posted on the github page for the project. I don't 
have the URL handy, but if you search github for "Python Azure SDK" you'll find 
it.
Cheers,
Steve
Sent from my Windows Phone
________________________________
From: syed khalid<mailto:[email protected]>
Sent: ‎2/‎5/‎2015 21:27
To: [email protected]<mailto:[email protected]>
Cc: [email protected]<mailto:[email protected]>
Subject: [Python-Dev] Azure event hub network access
I am getting http error 404. I am able to access the site via telnet which 
eliminates network issues. Here is the code and subsequent errors
user/bin/python
import sys
import azure
import socket
from azure.servicebus import (
 _service_bus_error_handler
 )
from azure.servicebus.servicebusservice import (
 ServiceBusService,
 ServiceBusSASAuthentication
 )
from azure.http import (
 HTTPRequest,
 HTTPError
 )
from azure.http.httpclient import _HTTPClient
class EventHubClient(object):
def sendMessage(self,body,partition):
 eventHubHost = 
"pac-ns.servicebus.windows.net<http://pac-ns.servicebus.windows.net>"
 httpclient = _HTTPClient(service_instance=self)
 sasKeyName = "pac-pl"
 sasKeyValue = "IhkEepQPLfSy9jo6H2Yxxxxxxxxxxxxxxxxxxxx="
 authentication = ServiceBusSASAuthentication(sasKeyName,sasKeyValue)
 request = HTTPRequest()
 request.method = "POST"
 request.host = eventHubHost
 request.protocol_override = "https"
# request.path = "/myhub/publishers/" + partition + "/messages?api-version=20
14-05"
 request.body = body
 request.headers.append(('Content-Type', 'application/atom+xml;type=entry;cha
rset=utf-8'))
 authentication.sign_request(request, httpclient)
 request.headers.append(('Content-Length', str(len(request.body))))
status = 0
 try:
 resp = httpclient.perform_request(request)
 status = resp.status
 except HTTPError as ex:
 status = ex.status
 return status
class EventDataParser(object):
 def getMessage(self,payload,sensorId):
 host = socket.gethostname()
 body = "{ \"DeviceId\" : \"" + host + "\",\"SensorData\": [ "
 msgs = payload.split(",")
 first = True
 for msg in msgs:
 # print msg
 sensorType = msg.split(":")[0]
sensorValue = msg.split(":")[1]
 if first == True:
 first = False
 else:
 body += ","
 body += "{ \"SensorId\" : \"" + sensorId + "\", \"SensorType\" : \"" + sen
sorType + "\", \"SensorValue\" : " + sensorValue + " }"
 body += "]}"
 return body
hubClient = EventHubClient()
parser = EventDataParser()
hostname = socket.gethostname()
sensor = sys.argv[2]
body = parser.getMessage(sys.argv[1],sensor)
hubStatus = hubClient.sendMessage(body,hostname)
# return the HTTP status to the caller
print hubStatus
print hostname
print sensor
~/IOT/AZURE$ python send.py temperature:22,humidity:20 deviceid
404
ubuntu
deviceid
{ "DeviceId" : "ubuntu","SensorData": [ { "SensorId" : "deviceid", "SensorType" 
: "temperature", "SensorValue" : 22 },{ "SensorId" : "deviceid", "SensorType" : 
"humidity", "SensorValue" : 20 }]}
--
Syed Khalid
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to