Created
December 20, 2012 22:01
-
-
Save pewerner/4348926 to your computer and use it in GitHub Desktop.
Web request to a "rest" API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This is the actual class | |
import clr | |
clr.AddReference('System') | |
clr.AddReference('System.Xml') | |
clr.AddReference('System.Data') | |
from System.Net import * | |
from System.IO import * | |
from System.Data import * | |
from System.Xml import * | |
from System.Xml.XPath import * | |
class RailsClient(): | |
def __init__(self): | |
pass | |
def loadData(self, url): | |
# Grab Data from Rails rest api | |
request = HttpWebRequest.Create(url) | |
response = request.GetResponse() | |
sr = StreamReader(response.GetResponseStream()) | |
responseText = sr.ReadToEnd() | |
# The DataGrid Control Requires that all data is assembled into a DataTable | |
datatable = DataTable() | |
datatable.Columns.Add("Order ID") | |
datatable.Columns.Add("Order Name") | |
datatable.Columns.Add("Order Status") | |
datatable.Columns.Add("Production Method") | |
datatable.Columns.Add("Operator") | |
datatable.Columns.Add("Customer") | |
datatable.Columns.Add("Date Created") | |
datatable.Columns.Add("Date Updated") | |
# use Xpath to parse data from rails, then add it to the DataTable. | |
doc = XmlDocument() | |
doc.LoadXml(responseText) | |
platesNode = doc.SelectNodes('//orders/order') | |
for plate in platesNode: | |
order_id = plate.SelectSingleNode('./order-id').InnerXml.ToString() | |
order_name = plate.SelectSingleNode('./order-name').InnerXml.ToString() | |
order_status = plate.SelectSingleNode('./order-stat').InnerXml.ToString() | |
production_method = plate.SelectSingleNode('./production-method').InnerXml.ToString() | |
operator = plate.SelectSingleNode('./operator').InnerXml.ToString() | |
customer = plate.SelectSingleNode('./customer').InnerXml.ToString() | |
created_at = plate.SelectSingleNode('./created-at').InnerXml.ToString() | |
updated_at = plate.SelectSingleNode('./updated-at ').InnerXml.ToString() | |
datatable.Rows.Add(order_id, order_name,order_status, production_method, operator,customer, created_at, updated_at) | |
return datatable | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This Code is launched from the Controller Software it requires the class in the file below | |
import clr | |
import sys | |
#append the sys path to the directory that contains your python scripts | |
sys.path.append("C:\\Program Files\\Agilent Technologies\\pyScripts") | |
import db | |
rs = db.RailsClient() | |
dataGrid1.DataSource = rs.loadData('http://shielded-fjord-4205.herokuapp.com/orders.xml') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment