simple HTTP Post Xml request

M

Me Me

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

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
 
7

7stud --

Me said:
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.
 
D

Dylan Evans

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

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

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 '/'
 
M

Me Me

thanks for answering.

I tried:

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

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

and I get
getaddrinfo: no address associated with hostname (Socket Error)
 
7

7stud --

Me said:
thanks for answering.

I tried:

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

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

and I get
getaddrinfo: no address associated with hostname (Socket Error)

Where is "the server" that you are referring to? And by "where" I mean
what is its url?
 
L

lasitha

I tried:

url='http://manage.encoding.com/'
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.com/')
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.com/')
Net::HTTP.start(url.host, url.port) do |http|
response = http.post(url.path, "xml=#{some_xml_data}")
end


HTH,
lasitha
 
M

Me Me

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

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

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top