将xml数据从java发布到rails(restful service)

时间:2010-02-24 17:07:44

标签: java ruby-on-rails xml post

我正在尝试将java中的xml文档发布到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

有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

为什么不使用来自caucho:hessianburlap库的已实施解决方案?这适用于ruby和java。

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

我认为你的工作也需要implement the rails side。 (我知道人们可以轻松地从轨道中检索xml,但不是我认为的其他方式)

答案 1 :(得分:0)

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

如果您已定义自己的路线,则需要在路线中添加.:format,以便Rails可以从网址中选取内容类型。

另一种方法是在Accept中发送POST标题,然后将其发送到/mycontrollers而不是/mycontrollers.xml