Hello everyone, I'm trying my first ruby script here. What I am trying
to do is sending an SMS using Kannel, for this Kannel runs an script in
an specific port(13013).
Basically you do a HTTP post like this:
http://192.168.10.204:13013/cgi-bin/sendsms?username=tester&password=foobar&from=444&to=44440295&smsc=mysmsc&text=hello+world
and i get an SMS in my mobile.
I'm trying the following:
#!/usr/bin/ruby
require 'net/http'
require 'uri'
res =
Net::HTTP.post_form(URI.parse('http://192.168.10.204:13013/cgi-bin/sendsms'),
{ 'user'=>'tester',
'pass'=>'foobar',
'from'=>'444',
'to'=>'44440295',
'smsc'=>'mysmsc',
'text'=>'Test from ruby!'
})
puts res.body
But i get the following Error:
"Invalid content-type"
I have also tried without the puts res.body part as the response from
Kannel is a plain text response.
I am thinking that the error is that I am trying to post in the port
13013?
Can someone please guide me on how to achieve this?
Thank you
alejandro
···
--
Posted via http://www.ruby-forum.com/.
Hi,
different port should not be a prolem. I think your problem is that
you are trying to use POST method (HTTP.post_form) while what you
really want is GET (at least your first example implies that).
So try
#!/usr/bin/ruby
require 'net/http'
require 'uri'
uri = URI.parse('http://192.168.10.204:13013/cgi-bin/sendsms'\)
uri.set_query( 'user'=>'tester', 'pass'=>'foobar', 'from'=>'444',
'to'=>'44440295', 'smsc'=>'mysmsc', 'text'=>'Test from ruby!')
res = Net::HTTP.get(uri),
puts res.body
I have not tested this, so maybe you'll need to fix this.
···
On 1/8/07, Alejandro Ramierz <aramirez@ebclosion.com> wrote:
Hello everyone, I'm trying my first ruby script here. What I am trying
to do is sending an SMS using Kannel, for this Kannel runs an script in
an specific port(13013).
Basically you do a HTTP post like this:
http://192.168.10.204:13013/cgi-bin/sendsms?username=tester&password=foobar&from=444&to=44440295&smsc=mysmsc&text=hello+world
and i get an SMS in my mobile.
I'm trying the following:
#!/usr/bin/ruby
require 'net/http'
require 'uri'
res =
Net::HTTP.post_form(URI.parse('http://192.168.10.204:13013/cgi-bin/sendsms'\),
{ 'user'=>'tester',
'pass'=>'foobar',
'from'=>'444',
'to'=>'44440295',
'smsc'=>'mysmsc',
'text'=>'Test from ruby!'
})
puts res.body
But i get the following Error:
"Invalid content-type"
I have also tried without the puts res.body part as the response from
Kannel is a plain text response.
I am thinking that the error is that I am trying to post in the port
13013?
Can someone please guide me on how to achieve this?
Jan Svitok wrote:
I'm trying the following:
'smsc'=>'mysmsc',
I am thinking that the error is that I am trying to post in the port
13013?
Can someone please guide me on how to achieve this?
Hi,
different port should not be a prolem. I think your problem is that
you are trying to use POST method (HTTP.post_form) while what you
really want is GET (at least your first example implies that).
So try
#!/usr/bin/ruby
require 'net/http'
require 'uri'
uri = URI.parse('http://192.168.10.204:13013/cgi-bin/sendsms'\)
uri.set_query( 'user'=>'tester', 'pass'=>'foobar', 'from'=>'444',
'to'=>'44440295', 'smsc'=>'mysmsc', 'text'=>'Test from ruby!')
res = Net::HTTP.get(uri),
puts res.body
Or
#!/usr/bin/ruby
require 'open-uri'
p
open("http://192.168.10.204:13013/cgi-bin/sendsms?user=tester&pass=foobar&from=444&to=3423424&smsc=mysmsc&text=test
from ruby")
-.rb
···
On 1/8/07, Alejandro Ramierz <aramirez@ebclosion.com> wrote:
--
Posted via http://www.ruby-forum.com/\.
Thank you Jan and Rodrigo for taking the time to answer!
I've tried Rodrigo's version and it worked fine! But i am curious as of
the error i get from Jan's version:
protected method `set_query' called for #<URI::HTTP:0xb7f6ed90>
(NoMethodError)
I have looked of the set_query Method but there is not much info there.
What could be the cause of this?
again thanks!
Alejandro
Rodrigo Bermejo wrote:
···
Jan Svitok wrote:
On 1/8/07, Alejandro Ramierz <aramirez@ebclosion.com> wrote:
I'm trying the following:
'smsc'=>'mysmsc',
I am thinking that the error is that I am trying to post in the port
13013?
Can someone please guide me on how to achieve this?
Hi,
different port should not be a prolem. I think your problem is that
you are trying to use POST method (HTTP.post_form) while what you
really want is GET (at least your first example implies that).
So try
#!/usr/bin/ruby
require 'net/http'
require 'uri'
uri = URI.parse('http://192.168.10.204:13013/cgi-bin/sendsms'\)
uri.set_query( 'user'=>'tester', 'pass'=>'foobar', 'from'=>'444',
'to'=>'44440295', 'smsc'=>'mysmsc', 'text'=>'Test from ruby!')
res = Net::HTTP.get(uri),
puts res.body
Or
#!/usr/bin/ruby
require 'open-uri'
p
open("http://192.168.10.204:13013/cgi-bin/sendsms?user=tester&pass=foobar&from=444&to=3423424&smsc=mysmsc&text=test
from ruby")
-.rb
--
Posted via http://www.ruby-forum.com/\.
I see... as I said, I haven't tried the code myself. Maybe try just
uri.query=, although I don't know what format it takes. Try either
hash or string. Or look it up in the sources 
···
On 1/9/07, Alejandro Ramirez <aramirez@ebclosion.com> wrote:
Thank you Jan and Rodrigo for taking the time to answer!
I've tried Rodrigo's version and it worked fine! But i am curious as of
the error i get from Jan's version:
protected method `set_query' called for #<URI::HTTP:0xb7f6ed90>
(NoMethodError)
I have looked of the set_query Method but there is not much info there.
What could be the cause of this?