0

我正在将产品上传到采用 HTTP/XML 的后端系统 一切正常……我发送了产品,结果我得到了惊人数量的 XML。令人惊叹的是它几乎什么都没有。一些包含其他标签的标签,包含成功。

果然信息够好吗??:)

日期戳会很好,并且是我老板要求的。我需要一种方法来记录发送“成功”的时间。不是在我收到它时,因为我的时间戳可能与服务器的时间戳不匹配。

我使用 SOAP-UI 工具来发送原始 XML,因为它允许我相当快速地更改 XML 并测试它是否有效。在原始响应中,我看到了发送响应的服务器和时间。

这是原始响应中的内容。

HTTP/1.1 200 OK
Date: Thu, 04 Jul 2013 23:46:00 GMT
Server: Apache
Set-Cookie: PHPSESSID=XXXXXXXXXX; expires=Fri, 05-Jul-2013 00:01:00 GMT; path=/enterprise11301; domain=XXXX.net.nz; secure; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: CUSTOMER=deleted; expires=Wed, 04-Jul-2012 23:45:59 GMT; path=/enterprise11301; domain=staging.XX.net.nz; secure; httponly
Set-Cookie: CUSTOMER_INFO=deleted; expires=Wed, 04-Jul-2012 23:45:59 GMT; path=/enterprise11301; domain=staging.XX.net.nz; secure; httponly
Set-Cookie: CUSTOMER_AUTH=deleted; expires=Wed, 04-Jul-2012 23:45:59 GMT; path=/enterprise11301; domain=staging.XX.net.nz; secure; httponly
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 282
Content-Type: text/xml; charset=UTF-8

因此,当我在 ruby​​/rails 中发送完全相同的内容时,我想要该信息这是我用于发送和获取响应的代码。

 url = URI.parse( @credentials[:endpoint] );
 http = Net::HTTP.new(url.host, url.port)
 http.use_ssl = false
 http.verify_mode = 0
 request = Net::HTTP::Post.new(url.path);
 request.body = @xml    
 response = http.start { |http_runner| http_runner.request( request ) }

那么关于如何扩展它以访问 RAW 有什么想法吗?

4

1 回答 1

0

好的..我做了一堆挖掘,最终只是在响应上调用了 :methods 。

raise response.to_hash.to_xml   #And poof I see what I'm looking for... 
于 2013-07-05T01:30:49.977 回答