HTTP post to a differnt port + no content type response

  • Thread starter Alejandro Ramierz
  • Start date
A

Alejandro Ramierz

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...=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
 
J

Jan Svitok

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...=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?

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.
 
R

Rodrigo Bermejo

Jan said:
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...bar&from=444&to=3423424&smsc=mysmsc&text=test
from ruby")


-.rb
 
A

Alejandro Ramirez

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
 
J

Jan Svitok

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?

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 ;-)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,014
Latest member
BiancaFix3

Latest Threads

Top