Цель: Использование API геокодера переписи США. Я разрабатываю сервис для преобразования адресов в координаты с помощью WinHTTPRequest в Python
Проблема: Я пытаюсь отправить файл через HTTPRequest (POST). Я не могу использовать обычный пакет python requests
, так как моя компания это блокирует. Я должен использовать WinHTTP.WinHTTPRequest.5.1
клиент для этого. Я могу выполнить Send () без параметров. Как я могу отправить словари 'files' и 'payload' в качестве параметров?
Геокодирование URL: https://geocoding.geo.census.gov/geocoder/locations/addressbatch?form
Python Snippet
url = 'https://geocoding.geo.census.gov/geocoder/locations/addressbatch'
payload = {'benchmark':'Public_AR_Current'}
files = {'addressFile': ('Addresses.csv', open('Addresses.csv', 'rb'), 'text/csv')}
winRequest = win32com.client.Dispatch('WinHTTP.WinHTTPRequest.5.1')
proxy_server = "http://myProxyserver.com:83"
winRequest.SetAutoLogonPolicy(0)
winRequest.SetProxy(2, proxy_server)
winRequest.Open('POST', url, False)
postData="files="+files+",data="+payload
winRequest.Send(postData)