【问题标题】:posting xml data from java to rails (restful service)将 xml 数据从 java 发布到 rails (restful 服务)
【发布时间】:2010-02-24 17:07:43
【问题描述】:

我正在尝试将 xml 文档从 java 发布到 rails 应用程序。我很难写 http 请求 这是我的java代码:

        Socket sock = new Socket(addr, port);
        String path = "http://127.0.0.1:3000/mycontrollers.xml";
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream(), "UTF-8"));
        wr.write("POST +path+ " HTTP/1.0\r\n");
        wr.write("Host: http://127.0.0.1:3000\r\n");
        wr.write("Content-Length: " + xmldata.length() + "\r\n");
        wr.write("Content-Type: text/xml; charset=\"utf-8\"\r\n");
        wr.write("\r\n");
        //Send data
        wr.write(xmldata);
        wr.flush();

作为回报,我有:未找到:/mycontrollers.xml

有什么想法吗?

非常感谢

【问题讨论】:

  • 从浏览器访问127.0.0.1:3000/mycontrollers.xml会得到什么?
  • Ruby 应用是否响应来自浏览器的请求?从这个端口上的 telnet?为什么不使用 commons-httpclient ps 你在第 4 行忘记了引号 ("),在 +path 之前

标签: java ruby-on-rails xml post


【解决方案1】:

为什么不使用 caucho 中已经实现的解决方案:hessianburlap 库?这适用于 ruby​​ 和 java。

您是否尝试使用 more simple tools 发布 xml(例如 firefox 插件)?

我想你也需要implement the rails side 来为你工作。 (我知道人们可以轻松地从 rails 检索 xml,但我认为不是相反)

【讨论】:

    【解决方案2】:

    从您看到的错误来看,您似乎没有路由设置来处理 Rails 应用程序中的/mycontrollers.xml。您是在使用资源助手还是定义了自定义路由?

    如果您定义了自己的路由,则需要将 .:format 添加到路由中,以便 Rails 可以从 url 中获取内容类型。

    另一种选择是在您的POST 中发送Accept 标头并将其发送到/mycontrollers 而不是/mycontrollers.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2011-11-12
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      相关资源
      最近更新 更多