On Jan 15, 4:46 pm, r0g <aioe....@technicalbloke.com> wrote: > João wrote: > > On Jan 15, 2:38 pm, r0g <aioe....@technicalbloke.com> wrote: > >> João wrote: > >>> On Jan 14, 5:58 pm, r0g <aioe....@technicalbloke.com> wrote: > >>>> João wrote: > >>>>> On Jan 12, 10:07 pm, r0g <aioe....@technicalbloke.com> wrote: > >>>>>> João wrote: > >>>>> for the following data, > >>>>> authentication = "UID=somestring&" > >>>>> message = 'PROBLEM severity High: OperatorX Plat1(locationY) global > >>>>> Succ. : 94.470000%' > >>>>> dest_number = 'XXXXXXXXXXX' > >>>>> url_values = urlencode({'M':message}) > >>>>> enc_data = authentication + url_values + dest_number > >>>>> I'm getting null for > >>>>> full_url = Request(url, enc_data, headers) > >>>>> and thus, > >>>>> response = urlopen(full_url).read() > >>>>> returns, > >>>>> TypeError: <exceptions.TypeError instance at 0x2b4d88ec6440> > >>>>> ) > >>>> Are you sure it's returning a null and not just some other unexpected > >>>> type? > >>>> I think your problem may be that you are passing a urllib2 class to > >>>> urllib(1)'s urlopen. Try using urllib2's urlopen instead e.g. > >>>> import urllib2 > >>>> request_object = urllib2.Request('http://www.example.com') > >>>> response = urllib2.urlopen(request_object) > >>>> the_page = response.read() > >>>> Roger. > >>> Thanks Roger. > >>> I think it's a null because i did a print(full_url) right after the > >>> Request > >>> I tried > >>> request_object = urllib2.Request('http://www.example.com') > >>> print(request_object) > >>> but when printing I get: <urllib2.Request instance at 0x2afaa2fe3f80> > >> Hi João, > > >> That's exactly what you want, an object that is an instance of the > >> Request class. That object doesn't do anything by itself, you still need > >> to a) Connect to the server and request that URL and b) Read the data > >> from the server. > > >> a) To connect to the web server and initialize the request you need to > >> call urllib2.urlopen() with the Request object you just created and > >> assign the result to a name e.g. > > >>>> response = urllib2.urlopen(request_object) > >> That will give you an object (response) that you can call the .read() > >> method of to get the web page data. > > >>>> the_page = response.read() > >> If that doesn't make sense or seem to work for you then please try > >> reading the following website from top to bottom before taking any > >> further steps... > > >>http://www.voidspace.org.uk/python/articles/urllib2.shtml > > >>> I've read about Python 2.4 not playing well with proxies even with no > >>> proxy activated. > >>> Any sugestion? > >> I doubt any language can play well with proxies if there are none so I > >> doubt it's a factor ;) > > >> Good luck, > > >> Roger. > > > lol. > > I've expressed myself poorly, > > I meant I read about some issues when getting the Request + urlopen > > working when there's a proxy involved (like in my case) > > even when activating a no_proxy configuration, something like, > > > proxy_support = urllib.ProxyHandler({}) > > opener = urllib.build_opener(proxy_support) > > urllib.install_opener(opener) > > > But I don't know how to use it :( > > That is how you use it IIRC, this installs the proxy handler into urllib > and subsequent objects you subclass from urllib will use the custom handler. > > From what I can tell, you should be using urllib2 though, not urllib. > > Lets take a step back. You had the following line... > > request_object = urllib2.Request('http://www.example.com') > > ...You printed it and it showed that you had created a Request object > right. Now what happens when you type... > > response = urllib2.urlopen(request_object) > print response > > ? > > Roger.
Thanks for the patience Roger. Your explanation opened my eyes. I finally got it to work, and it turned out I didn't have to include any custom proxy handler to avoid our proxy. It ended on such a small and simple block of code after getting the pieces together.. #!/usr/bin/env python import sys from urllib2 import Request, urlopen from urllib import urlencode authentication = "UID=124675&PW=gdberishyb8LcIANtvT89QVQ==&" url = 'http://10.112.28.221:38080/GwHTTPin/sendtext' encoded_data = urlencode({'M':sys.argv[2], 'N':sys.argv[1]}) # Was having problem with this one, shouldn't have tried to pass the authentication as an urlencode parameter because it was breaking the password string! sent_data = authentication + encoded_data full_url = Request(url,sent_data) response = urlopen(full_url).read() -- http://mail.python.org/mailman/listinfo/python-list