Как отправить параметры (файлы) в HTTPRequest, используя Python? - PullRequest
0 голосов
/ 28 февраля 2020

Цель: Использование 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)
...