Почему мой запрос на поставку терпит неудачу? - PullRequest
0 голосов
/ 06 апреля 2011

Использование Python 2.5 и httplib ......

По общему признанию, я новичок в Python ..... но это кажется прямым, почему это не работает?

httpConn = HTTPConnection('127.0.0.1', 44789)
httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=', hwSerialNum)
httpResp = httpConn.getresponse()

xmlResp = httpResp.read()

httpConn.close()

возвращает следующий ответ: <HTML><HEAD><TITLE>HTTP 404.......

Любые подсказки кому-либо ???

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Я думаю, вам следует заменить PUT на GET.

Вы должны подумать о дезинфекции ввода, попробуйте

httpConn.request('GET','/ShazaamMon/setmfgdata.cgi?serial=%s' % (urllib.quote(hwSerialNum)))
1 голос
/ 06 апреля 2011

HTTP 404 означает, что запрошенный вами ресурс не существует.Вы уверены, что URL верен?

Кроме того, вы вводите в тело запроса (третий параметр request()) переменную, которая, на мой взгляд, является параметром запроса.

Попробуйте следующее:

httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=' + str(hwSerialNum))

или, возможно (если требуется GET вместо PUT):

httpConn.request('GET','/ShazaamMon/setmfgdata.cgi?serial=' + str(hwSerialNum))
0 голосов
/ 06 апреля 2011

@ Ангелом ответ лаконичен и точен. Для хорошего примера наполненного примера использования PUT в urllib и urllib2 попробуйте http://www.voidspace.org.uk/python/articles/urllib2.shtml#data.

...