From: Jan Svitok Date: 2007-01-09T08:16:24+09:00 Subject: Re: HTTP post to a differnt port + no content type response On 1/8/07, Alejandro Ramierz 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? 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.