Vairāk

Nevar pievienot pielikumu ArcGIS Online funkciju pakalpojumam, izmantojot Python un REST API


Es mēģinu izmantot Python, lai pievienotu pielikumus ArcGIS Online mitinātajam pakalpojumu pakalpojumam, taču tiek parādīts ziņojums “Nevar pievienot šim līdzeklim pielikumu”. ziņojumu, kad palaižu šādu kodu:

importēt pieprasījumus objectId = '158' attachUrl = "http://services.arcgis.com/abcdefg/FeatureServer/0/%s/addAttachment" %objectId files = {'file': open ('myAttachment.pdf', 'rb ')} params = {"token": token, "f": "json", "files": files} r = request.post (attachUrl, params) r.text

Rezultāts:

u '{"kļūda": {"kods": 400, "ziņojums": "", "detaļas": ["Šim līdzeklim nevar pievienot pielikumu."]}}'

Esmu pārliecinājies, ka izmantoju valud URL, objectID un token.

Es uzskatu, ka problēma ir saistīta ar sintaksi, ko izmantoju, lai iesniegtu daudzdaļīgu ziņu pieprasījumu, taču es vēl neesmu iepazinies ar request.py un programmatisko failu augšupielādi.


Jūs bijāt ļoti tuvu! Tas bija diezgan sarežģīti, jo ArcGIS REST API dokumentācija neko daudz nepaskaidroja. Saskaņā ar pieprasījumu dokumentiem varat skaidri iestatīt satura galvenes. Šis man darbojās:

importēt pieprasījumus importēt os token = 'K6ZZZsf0Xtf… PLNffN03fWcA…' url = 'http: // yourserver/arcgis/rest/services/FRLK/FS_TESTING/FeatureServer/0' attachment = r'L:  NEWP  neizdevās  val  PIC_00001963. pdf 'def add_attachment (URL, marķieris, oid, pielikums): att_url =' {}/{}/addAttachment'.format (url, oid) files = {'attachment': (os.path.basename (pielikums), atveriet (pielikums, 'rb'), 'application/pdf')} params = {'token': token, 'f': 'json'} r = request.post (att_url, params, files = files) return rf = add_attachment (URL, marķieris, 2402, pielikums)

Patiesā maģija notiek tieši šeit, un to meklē REST API:

faili = {'pielikums': (os.path.basename (pielikums), atveriet (pielikums, 'rb'), 'application/pdf')}

Un Fiddler atbilde/tīmekļa veidlapa:

Turklāt es tikko pievienoju šo funkcionalitāti savam restorēna krātuvei vietnē GitHub. Jūs varat to lejupielādēt un izmantot, lai veiktu visu veidu darbības pret REST pakalpojumiem.

Ja vēlaties iet šo ceļu, varat pievienot šādus pielikumus:

>>> importēt restapi >>> usr = 'lietotājvārds' >>> pw = 'parole' >>> url = 'http://yourserver.com/arcgis/rest/services/Folder/Some_featureService/FeatureServer/0'> >> pts = restapi. jpg ">Uzlabojiet šo atbildirediģēts 15. maijā plkst. 17:18atbildēja 12. maijā, pulksten 16:41crmackeycrmackey8,21414 sudraba nozīmītes30 bronzas nozīmītes


Skatīties video: GIS Tools: ArcMapArcGIS Tool for connecting points (Oktobris 2021).