From: João on
On Jan 12, 10:07 pm, r0g <aioe....(a)technicalbloke.com> wrote:
> João wrote:
> > On Jan 12, 8:05 pm, r0g <aioe....(a)technicalbloke.com> wrote:
> >> João wrote:
> >>> Someone please?
> >> Haven't seen your original post yet mate, usenet can be flaky like that,
> >> might have been a good idea to quote your original post!
>
> >> Roger.
>
> > Thanks Roger.
>
> >> João wrote:
> >>> Someone please?
> >>> Hi.
> >>> I'm trying to figure out how to force URLencoding in my Python 2.4.3
> >>> environment, receiving data as an input argument but I'm really at a loss
> >>> here.
>
> >>> What am I doing wrong?
> > headers =  {  ’User-Agent’  :  user_agent  }
>
> Those quotes need to be either " or ' i.e.
>
> headers =  {  'User-Agent'  :  user_agent  }
>
> If that doesn't sort it then it would be helpful to see a traceback or,
> if it is not crashing, get a description of how it is failing to do what
> you expect.
>
> Cheers,
>
> Roger.

Weird, I had the correct quotes in my script, maybe I've pasted with
some error.
This is my current script,

(and though I got it working with the subprocess.call I don't know how
to use a pure Python version.

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>

)

#!/usr/bin/env python
import sys
import os
import subprocess
from urllib import urlencode, urlopen
from urllib2 import Request

destination = sys.argv[1]
msg = sys.argv[2]

authentication = "UID=somestring&"
dest_number = "&N=%s" % destination

message = '%s' % msg
url_values = urlencode({'M':message})

enc_data = authentication + url_values + dest_number

url = 'http://10.112.28.221:38080/GwHTTPin/sendtext'

subprocess.call('echo "%s" | /usr/bin/POST -P "%s"' % (enc_data, url),
shell=True)
From: r0g on
Jo�o wrote:
> On Jan 12, 10:07 pm, r0g <aioe....(a)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.
From: João on
On Jan 14, 5:58 pm, r0g <aioe....(a)technicalbloke.com> wrote:
> João wrote:
> > On Jan 12, 10:07 pm, r0g <aioe....(a)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>

I've read about Python 2.4 not playing well with proxies even with no
proxy activated.
Any sugestion?

Thanks again

From: João on
EDIT:

About the proxy.
That's why I'm using the '-P' in the POST call.
/usr/bin/POST -P
From: r0g on
Jo�o wrote:
> On Jan 14, 5:58 pm, r0g <aioe....(a)technicalbloke.com> wrote:
>> Jo�o wrote:
>>> On Jan 12, 10:07 pm, r0g <aioe....(a)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.