Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) Google Maps Geolocation RequestDemonstrates how make a Google Maps Geolocation REST API request.
use chilkat(); # This example duplicates the following CURL request: # curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $rest = chilkat::CkRest->new(); # Connect to the Google API REST server. $bTls = 1; $port = 443; $bAutoReconnect = 1; $success = $rest->Connect("www.googleapis.com",$port,$bTls,$bAutoReconnect); # Add the Content-Type request header. $rest->AddHeader("Content-Type","application/json"); # Add your API key as a query parameter $rest->AddQueryParam("key","YOUR_API_KEY"); # The JSON query is contained in the body of the HTTP POST. # This is a sample query (which we'll dynamically build in this example) # { # "homeMobileCountryCode": 310, # "homeMobileNetworkCode": 260, # "radioType": "gsm", # "carrier": "T-Mobile", # "cellTowers": [ # { # "cellId": 39627456, # "locationAreaCode": 40495, # "mobileCountryCode": 310, # "mobileNetworkCode": 260, # "age": 0, # "signalStrength": -95 # } # ], # "wifiAccessPoints": [ # { # "macAddress": "01:23:45:67:89:AB", # "signalStrength": 8, # "age": 0, # "signalToNoiseRatio": -65, # "channel": 8 # }, # { # "macAddress": "01:23:45:67:89:AC", # "signalStrength": 4, # "age": 0 # } # ] # } $json = chilkat::CkJsonObject->new(); $json->AppendInt("homeMobileCountryCode",310); $json->AppendInt("homeMobileNetworkCode",260); $json->AppendString("radioType","gsm"); $json->AppendString("carrier","T-Mobile"); # aCellTowers is a JsonArray $aCellTowers = $json->AppendArray("cellTowers"); $aCellTowers->AddObjectAt(0); # oCellTower is a JsonObject $oCellTower = $aCellTowers->ObjectAt(0); $oCellTower->AppendInt("cellId",39627456); $oCellTower->AppendInt("locationAreaCode",40495); $oCellTower->AppendInt("mobileCountryCode",310); $oCellTower->AppendInt("mobileNetworkCode",260); $oCellTower->AppendInt("age",0); $oCellTower->AppendInt("signalStrength",-95); # aWifi is a JsonArray $aWifi = $json->AppendArray("wifiAccessPoints"); $aWifi->AddObjectAt(0); # oPoint is a JsonObject $oPoint = $aWifi->ObjectAt(0); $oPoint->AppendString("macAddress","01:23:45:67:89:AB"); $oPoint->AppendInt("signalStrength",8); $oPoint->AppendInt("age",0); $oPoint->AppendInt("signalToNoiseRatio",-65); $oPoint->AppendInt("channel",8); $aWifi->AddObjectAt(1); # oPoint is a JsonObject $oPoint = $aWifi->ObjectAt(1); $oPoint->AppendString("macAddress","01:23:45:67:89:AC"); $oPoint->AppendInt("signalStrength",4); $oPoint->AppendInt("age",0); $responseJson = $rest->fullRequestString("POST","/geolocation/v1/geolocate",$json->emit()); if ($rest->get_LastMethodSuccess() != 1) { print $rest->lastErrorText() . "\r\n"; exit; } # When successful, the response code is 200. if ($rest->get_ResponseStatusCode() != 200) { # Examine the request/response to see what happened. print "response status code = " . $rest->get_ResponseStatusCode() . "\r\n"; print "response status text = " . $rest->responseStatusText() . "\r\n"; print "response header: " . $rest->responseHeader() . "\r\n"; print "response JSON: " . $responseJson . "\r\n"; print "---" . "\r\n"; print "LastRequestStartLine: " . $rest->lastRequestStartLine() . "\r\n"; print "LastRequestHeader: " . $rest->lastRequestHeader() . "\r\n"; exit; } $json->put_EmitCompact(0); print "JSON request body: " . $json->emit() . "\r\n"; # The JSON response should look like this: # { # "location": { # "lat": 37.4248297, # "lng": -122.07346549999998 # }, # "accuracy": 1145.0 # } print "JSON response: " . $responseJson . "\r\n"; $jsonResp = chilkat::CkJsonObject->new(); $jsonResp->Load($responseJson); # jsonLoc is a JsonObject $jsonLoc = $jsonResp->ObjectOf("location"); # Any JSON value can be obtained as a string.. $latitude = $jsonLoc->stringOf("lat"); print "latitude = " . $latitude . "\r\n"; $longitude = $jsonLoc->stringOf("lng"); print "longitude = " . $longitude . "\r\n"; $accuracy = $jsonResp->stringOf("accuracy"); print "accuracy = " . $accuracy . "\r\n"; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.