快速业务通道

跨越边界: REST on Rails - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
   URL url = new URL("http://localhost:3000/people/list");        URLConnection urlConnection = url.openConnection();        urlConnection.setRequestProperty("accept", "text/xml");        BufferedReader in =         new BufferedReader(new InputStreamReader(urlConnection.getInputStream ()));        String str;        while ((str = in.readLine()) != null) {          System.out.println(str);        }        in.close();      }      catch (Exception e) {        System.out.println(e);      }    }

跨越边界: REST on Rails(6)

时间:2011-07-25 IBM Bruce Tate

像其 Ruby 等价物一样,这个代码打开一个 URL 连接,把 Accept 头设置成 text/xml,发出 get, 并输出结果。Java 代码有许多 XML 框架(请参阅 参考资料),但是我在这个示例中硬编码了 XML,以 保持示例简单。

post 的调用也相似。清单 10 显示了简单的 post:

清单 10. 用 Java 代码调用 HTTP post

void post() { try {    String xmlText = "<person> " +        "<first-name>Maggie</first-name>" +        "<last-name>Maggie</last-name>" +        "<email>maggie@tate.com</email>" +      "</person>";    URL url = new URL("http://localhost:3000/people/create");    HttpURLConnection conn = (HttpURLConnection)url.openConnection();    conn.setDoOutput(true);    conn.setRequestMethod("POST");    conn.setRequestProperty("Content-Type", "text/xml");    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());    wr.write(xmlText);    wr.flush();    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));    String line;    while ((line = rd.readLine()) != null) {      System.out.println(line);    }    wr.close();    rd.close();    } catch (Exception e) {      System.out.println("Error" + e);    } }

这个 HTTP post 通过在 http://localhost:3000/people/create 上调用 post,并在 HTTP 文档体中 传递一个 XML 文档,创建了一个新 Person。(通常应当用 Java XML 库构建 XML 文档。这次我还是硬 编码了 XML 文档,以保持示例简单。)Rails 支持自动把进入的 XML 转换成 Person 属性的 Ruby 散列 表。

结束语

在本文中,已经看到只用少量代码,就使控制器支持基于 REST 的 Web 服务。动态类型化的 Internet 语句,例如 Ruby,大量地利用 REST 代替基于 SOAP 的 Web 服务。一些简单的调用,包括漂 亮的 responds_to 语法和对进入提交的自动 XML 转换,使得可以容易地利用同一控制器处理 Web 服务 、远程 JavaScript 请求或 HTML。

Java 语言对 REST 也有非常好的支持。毕竟,servlet 实际上是服务器端基于 REST 的 Web 服务。 可以在 Java 端使用 servlet,在 Ruby 端使用 Rails 控制器,把利用两个平台优势的应用程序组合在 一起。这就是 Web 服务的漂亮之处。您真正需要的所有东西就是超群出众的勇气。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号