Posting XML


J

JesseQA

Hi everyone. A newbie with ruby/xml so I am not sure where my trouble
is with my code. It does not seem to do anything when I run it. Your
help is much appreciated!
Here is my code:

I am trying to post an XML file but it does not seem to do anything.
Can someone take a look at this code and tell me if it looks correct?
Thank you!

require 'rubygems'
require 'net/https'
require 'net/http'
require 'uri'
require 'nokogiri'

url = "http://mydomain.com/Will.do?method=ntf"
uri = URI.parse(url)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if (uri.scheme == 'https')

f = File.open('my.xml','r')
data = Nokogiri::XML(f)
f.close

headers = {'Content-Type' => 'text/xml'}

resp, body = http.post(uri.path, data.to_xml, headers)
 
Ad

Advertisements

R

Robert Klemme

Hi everyone. A newbie with ruby/xml so I am not sure where my trouble
is with my code. It does not seem to do anything when I run it. Your
help is much appreciated!
Here is my code:

I am trying to post an XML file but it does not seem to do anything.

What exactly do you mean by that? Is it not sent to the server? Does
the server not react on it?
Can someone take a look at this code and tell me if it looks correct?
Thank you!

require 'rubygems'
require 'net/https'
require 'net/http'
require 'uri'
require 'nokogiri'

url = "http://mydomain.com/Will.do?method=ntf"
uri = URI.parse(url)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if (uri.scheme == 'https')

f = File.open('my.xml','r')
data = Nokogiri::XML(f)
f.close

headers = {'Content-Type' => 'text/xml'}

resp, body = http.post(uri.path, data.to_xml, headers)

Why do you read in the file, convert it to a DOM and then convert it
back before sending? IMHO that would only make sense if you either
need to validate the XML or change the structure.

Kind regards

robert
 
J

JesseQA

What exactly do you mean by that?  Is it not sent to the server?  Does
the server not react on it?










Why do you read in the file, convert it to a DOM and then convert it
back before sending?  IMHO that would only make sense if you either
need to validate the XML or change the structure.

Kind regards

robert

Hi Robert. Thanks for the response. The file is not sent to the
server. You ask about converting the file to a DOM then back before
sending
Would I be able to remove the read/convert and instead use something
like this?

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if (uri.scheme == 'https')

headers = {'Content-Type' => 'text/xml'}
resp, body = http.post(uri.path, data.to_xml, headers)
 
Ad

Advertisements

J

JesseQA

What exactly do you mean by that?  Is it not sent to the server?  Does
the server not react on it?










Why do you read in the file, convert it to a DOM and then convert it
back before sending?  IMHO that would only make sense if you either
need to validate the XML or change the structure.

Kind regards

robert

Thanks for the response Robert.
Would I be able to post like this?

resp, body = http.post(uri.path, 'my.xml', headers)
 

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

Top