I'm trying to use a web geoprocessing service in python. I'm using the example in this web site http://resources.arcgis.com/en/help/main/10.1/index.html#/Using_a_geoprocessing_service_in_Python_sc...
I'm not getting the expected results does anyone know the proper syntax to submit a job to a geoprocessing service?
Here's my code:
import arcpy,urllib,json baseURL = "my service here" query = "?Address:=504 Walnut St & RecType: = Youth Baseball League?" submitResponse = urllib.urlopen(baseURL+query) submitResponse = urllib.urlopen(baseURL+query) jobUrl = submitResponse.geturl() status = "esriJobSubmitted" print jobUrl while status == "esriJobSubmitted" or status == "esriJobExecuting": #print "checking to see if job is completed..." time.sleep(1) jobResponse = urllib.urlopen(jobUrl, "f=json") jobJson = json.loads(jobResponse.read()) if 'jobStatus' in jobJson: status = jobJson['jobStatus'] if status == "esriJobSucceeded": if 'results' in jobJson: resultsUrl = jobUrl + "/results/" resultsJson = jobJson['results'] for paramName in resultsJson.keys(): resultUrl = resultsUrl + paramName print resultUrl resultResponse = urllib.urlopen(resultUrl, "f=json") resultJson = json.loads(resultResponse.read()) print resultJson['value'] print resultJson if status == "esriJobFailed": if 'messages' in jobJson: print jobJson['messages'] else: print "no jobId found in the response" print "no jobId found in the response"
Message was edited by: Wes Miller
Are you wanting to use python to make a REST call to the GPService or are you wanting to import the GPService as a tool within arcpy and allow arcpy to handle the rest call?
I'm wanting to use python to make a REST call to the GPService
You can submit it directly at the REST endpoint with Fiddler or the browser's developer tools running to capture the traffic when sending the request, while making sure it actually runs successfully there. Then, construct the request including parameters within Python to match what Fiddler or the dev tools returned.
Thanks for the reply Jonathan Quinn I was able to get it working by changing to synchronous with the code below
url = "myservice?" param = "Address=324 W Evans St&RecType=Youth Soccer League&f=json" submitResponse = urllib.urlopen(url+param) print submitResponse.read()