In my reading I have seen lots of flaky posts about PowerShell and web services. I think people need to remember that web services still conform to the http protocol, there is no magic, you do not need to access any visual studio dll or do any weird crap like that, you just need to hit the url and receive a payload.
$wc = new-object system.net.WebClient $webpage = $wc.DownloadData($url)
That's it. No weird proxies no importing custom dll's.
Here's an example calling the Google Maps API (which is a nice API BTW) to get a latitude and longitude of an address, specifically Perth's craziest bar Devilles Pad (think Satan living in a trailer park that hangs out at a Go-Go club that used to be a James Bond-villians liar, yeah its that cool:
$url = "http://maps.google.com/maps/api/geocode/xml?address=3+Aberdeen+St,+Perth,+WA+6000,+Australia&sensor=false" $wc = new-object system.net.WebClient $webpage = $wc.DownloadString($url)#Edit -Thanks Ken $xmldata = [xml]$webpage $lat = $xmldata.GeocodeResponse.result.geometry.location.lat $lng = $xmldata.GeocodeResponse.result.geometry.location.lng write-host "Latitude = $lat - Longitude = $lng"
Like that? Go play: Google Maps API Doco
2 comments:
Why do you .DownloadData and then ASCII decode it, instead of .DownloadString() it in the first place?
@Ken - mainly becuase I dont know what im doing and im just messing around with powershell and the web at the moment.
Making the change now, cheers :)
Post a Comment