[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

simple HTTP Post Xml request

Ema Fuma

2/10/2009 10:22:00 AM

Hi,
I'm trying to post a xml to a server for encoding a file
(http://www.encoding.com/wdocs/Sam...).

Basically I just need a simple HTTP post where I specify an xml.
I'm trying to use Net::HTTP post but in my case I don't have a path to
specify as first parameter.
I jut need to send HTTP(S) POST request with single parameter named xml.
The server response is a normal XML document.

Thanks for any help on this.
Bye
--
Posted via http://www.ruby-....

6 Answers

7stud --

2/10/2009 11:07:00 AM

0

Me Me wrote:
> Hi,
> 1) I'm trying to post a xml to a server....
>
> 2)but in my case I don't have a path to
> specify as first parameter.

Those are incompatible statements. Servers live somewhere on the net,
and therefore they have url's that identify their location.

--
Posted via http://www.ruby-....

Dylan Evans

2/10/2009 11:12:00 AM

0

[Note: parts of this message were removed to make it a legal post.]

On Tue, Feb 10, 2009 at 8:21 PM, Me Me <emanuelef@tiscali.it> wrote:

> Hi,
> I'm trying to post a xml to a server for encoding a file
> (http://www.encoding.com/wdocs/Sam...).
>
> Basically I just need a simple HTTP post where I specify an xml.
> I'm trying to use Net::HTTP post but in my case I don't have a path to
> specify as first parameter.
> I jut need to send HTTP(S) POST request with single parameter named xml.
> The server response is a normal XML document.
>

If the http server doesn't care about the path can't you just use any? such
as '/'

--
The UNIX system has a command, nice ... in order to be nice to the other
users. Nobody ever uses it." - Andrew S. Tanenbaum

Ema Fuma

2/10/2009 11:22:00 AM

0

thanks for answering.

I tried:

require 'net/http'
require 'rexml/document'

url='http://manage.encoding...
http=Net:HTTP.new(url)
xml_response = http.post('/','')

and I get
getaddrinfo: no address associated with hostname (Socket Error)
--
Posted via http://www.ruby-....

7stud --

2/10/2009 11:45:00 AM

0

Me Me wrote:
> thanks for answering.
>
> I tried:
>
> require 'net/http'
> require 'rexml/document'
>
> url='http://manage.encoding...
> http=Net:HTTP.new(url)
> xml_response = http.post('/','')
>
> and I get
> getaddrinfo: no address associated with hostname (Socket Error)


>>The server response is a normal XML document.

Where is "the server" that you are referring to? And by "where" I mean
what is its url?
--
Posted via http://www.ruby-....

lasitha

2/10/2009 12:51:00 PM

0

On Tue, Feb 10, 2009 at 4:52 PM, Me Me <emanuelef@tiscali.it> wrote:
> I tried:
>
> url='http://manage.encoding...
> http=Net:HTTP.new(url)
> xml_response = http.post('/','')
>
> and I get
> getaddrinfo: no address associated with hostname (Socket Error)

With the disclaimer than i haven't used net/http much, the following
three forms all seem to post to manage.encoding.com and get back a 200
OK response.


require 'net/http'
require 'uri'

# this is the closest form to the one you tried
# note that the http protocol is excluded
# (presumably because we're explicitly constructing an HTTP object)

http = Net::HTTP.new('manage.encoding.com')
response = http.post('/', "xml=#{some_xml_data}")


# this form uses the post_form class method and a parsed uri
# note the trailing slash is necessary
# note also the (cleaner) use of a hash over a string for post params

url = URI.parse('http://manage.encoding...)
response = Net::HTTP.post_form(url, { 'xml' => some_xml_data })


# this form opens the tcp connection and http session,
# ensuring they are closed after the block executes

url = URI.parse('http://manage.encoding...)
Net::HTTP.start(url.host, url.port) do |http|
response = http.post(url.path, "xml=#{some_xml_data}")
end


HTH,
lasitha

Ema Fuma

2/10/2009 1:17:00 PM

0


> # this is the closest form to the one you tried
> # note that the http protocol is excluded
> # (presumably because we're explicitly constructing an HTTP object)
>
> http = Net::HTTP.new('manage.encoding.com')
> response = http.post('/', "xml=#{some_xml_data}")
>

Thanks a lot !!!
This is really what I needed.
--
Posted via http://www.ruby-....