Kevin
Kevin

Reputation: 3

Why Does My Put request fail?

Using Python 2.5 and httplib......

I am admittedly a python novice.....but this seems straight forward, why doesn't this work?

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

xmlResp = httpResp.read()

httpConn.close()

it returns the following response: <HTML><HEAD><TITLE>HTTP 404.......

Any clues anyone???

Upvotes: 0

Views: 715

Answers (3)

lysdexia
lysdexia

Reputation: 1806

@Angelom's answer is concise and correct. For a nice example-filled explanation of using PUT in urllib and urllib2 try http://www.voidspace.org.uk/python/articles/urllib2.shtml#data.

Upvotes: 0

Andrea Spadaccini
Andrea Spadaccini

Reputation: 12651

HTTP 404 means that the resource you requested does not exist. Are you sure that the URL is correct?

Moreover, you put in the body of the request (third parameter of request()) a variable that I think is a parameter of the request.

Try the following:

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

or maybe (if GET is required instead of PUT):

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

Upvotes: 1

Angelom
Angelom

Reputation: 2531

I think you should replace PUT with GET.

You should consider sanitizing the input, trye

httpConn.request('GET','/ShazaamMon/setmfgdata.cgi?serial=%s' % (urllib.quote(hwSerialNum)))

Upvotes: 2

Related Questions