Преобразование команды cURL в urllib2 Python - PullRequest
2 голосов
/ 07 декабря 2011

ребята!В настоящее время я работаю с API, который использует следующую строку cURL:

curl -vF "files[]=@file.zip" "http://s5.example.com/123"

Меня не интересует использование других библиотек, таких как pycurl, потому что мне действительно нужно преобразовать только одну или две строки.Я очень ценю вашу помощь!

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Все, что вам нужно, это urlopen метод модуль urllib ...

Синтаксис: urllib2.urlopen (url [, data] [, timeout])

data - строка, определяющая дополнительные данные для отправки на сервер

Пример:

import urllib
tlds = urllib.urlopen("http://data.iana.org/TLD/tlds-alpha-by-domain.txt").readlines()

В этом примере показан однострочный код для извлечения всехtlds в список под названием tlds, просканировав его с iana.org

Для сложных операций / опций / параметров метода urlopen вы можете проверить официальную документацию: http://docs.python.org/library/urllib2.html

2 голосов
/ 07 декабря 2011

Этот запрос отправляет содержимое файла в поле загрузки файла.Тело http запроса POST, загружающего файл, сложно собрать - для обычных текстовых полей можно просто отправить словарь в параметре «data =» вызову urllib2.urlopen, и поля будут опубликованы.

Для загрузки файлов необходимо отправить сложное тело http с настроенными заголовками.Я не знаю, может ли urllib2 сделать это - но я нашел пример того, как сделать это, используя httplib и mimetypes (оба являются частью stdlib Python) - так что вы можете выбрать пример кода и повторно использовать его в своем проекте:

http://code.activestate.com/recipes/146306-http-client-to-post-using-multipartform-data/

...