Отправить XML с помощью urllib - PullRequest
0 голосов
/ 08 июля 2011

По этой ссылке Я попытался отправить файл XML в свой веб-сервис с помощью GET:

import urllib
from createfile import XML


URL = "http://http://localhost:8080/mywebservice

parameter = urllib.urlencode({'XML': XML})

response = urllib.urlopen(URL + "?%s" % parameter)

print response.read()

Но выдает эту ошибку:

Traceback (most recent call last):
  File "C:\eclipse\testing_workspace\http tester\src\Main.py", line 15, in <module>
    response = urllib.urlopen(URL + "?%s" % parameter)
  File "C:\Python27\lib\urllib.py", line 84, in urlopen
    return opener.open(url)
  File "C:\Python27\lib\urllib.py", line 205, in open
    return getattr(self, name)(url)
  File "C:\Python27\lib\urllib.py", line 331, in open_http
    h = httplib.HTTP(host)
  File "C:\Python27\lib\httplib.py", line 1047, in __init__
    self._setup(self._connection_class(host, port, strict))
  File "C:\Python27\lib\httplib.py", line 681, in __init__
    self._set_hostport(host, port)
  File "C:\Python27\lib\httplib.py", line 706, in _set_hostport
    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
httplib.InvalidURL: nonnumeric port: ''

Но если я использую метод POST, описанный в этой ссылке, он работает хорошо, моя проблема заключается в том, что мне нужно использовать GET, так почему я получаю ошибки Thoose?

response = urllib.urlopen(URL, parameter)  // this works

1 Ответ

3 голосов
/ 08 июля 2011

Отправка XML-файла с помощью запроса GET - пустая чушь.

Используйте взамен POST .

...