2013-12-10 4 views
2

Я хочу отправить свои данные приложения/zip на сервер без pycurl или других библиотек. Я новичок с cURL. Во-первых, я послал данные успешно текст/XML с этим кодомurllib2 Ошибка почтового файла

import urllib2 
req = urllib2.Request("http://192.168.79.131/rest", headers = {"Content-type" : "text/xml" , "Accept" : "*/*"} , data = '<income><name>acme7</name></income>') 
f = urllib2.urlopen(req) 

Но теперь я хочу, чтобы загрузить свой почтовый файл на сервер. Я попробовал этот код:

import urllib2 
zipPath = "c:/somedir/ways.zip" 
zipData = open(zipPath, "rb") 
req = urllib2.Request("http://192.168.79.131/rest", headers = {"Content-type" : "application/zip" , "Accept" : "*/*"} , data = zipData) 
f = urllib2.urlopen(req) 

я получил эти ошибки:

Traceback (most recent call last): 
    File "<pyshell#25>", line 1, in <module> 
    f = urllib2.urlopen(req) 
    File "C:\Python27\lib\urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "C:\Python27\lib\urllib2.py", line 386, in open 
    protocol = req.get_type() 
    File "C:\Python27\lib\urllib2.py", line 248, in get_type 
    **raise ValueError, "unknown url type: %s" % self.__original 
ValueError: unknown url type: /rest/income** 

ответ

0

Рассматривали ли вы использовать что-то вроде Requests? Он обрабатывает много на urllib2 вещи, так что вы не должны:

import requests 

url = 'http://httpbin.org/post' 
files = {'file': open('c:/somedir/ways.zip', 'rb')} 
r = requests.post(url, files=files) 
print r 

гравюр:

>>> <Response [200]> 
+0

Я просто хочу использовать Python умолчанию используется именно LIBS. Нет дополнительной установки ... – user3088938

+0

Это потому, что вы не можете там, где вы работаете? Или вы не думаете, что установка lib стоит того? – brandonscript

+0

Я предпочитаю urllib2, потому что, возможно, пользователи не хотят устанавливать другие библиотеки (точно новенькие) – user3088938

Смежные вопросы