【问题标题】:How to Create a Restful service for already available site如何为已经可用的站点创建一个 Restful 服务
【发布时间】:2013-12-09 08:09:26
【问题描述】:

我有一些 API 网站会生成一些 JSON 数据,但我无法使用该 URL 直接访问该数据(如果我尝试访问它会显示 oauth 错误),因此我有一个密钥和 lib 文件抛出该异常。

所以我想为此创建一个 Restful Web 服务,...

如果没有 restful 服务,我正在从一个在 main() 方法中调用的类文件中访问数据,如果我将它作为 java 应用程序运行,我将在控制台获取数据,..因此它有 main 方法,.. 但我需要构建一个 Restful Web 服务。并在移动 windows/iPhone/android 中检索数据

我知道什么是 Restful 服务但我不知道如何获取数据 java 文件数据,.. 在控制台,... 到 Restful 服务

【问题讨论】:

  • 您能否提供更多关于您现在所拥有的设置的信息?它是基于 servlet 的 Web 应用程序还是其他东西,因为我不明白。因为如果你说你有一个 api 来获取一些 JSON 数据,但是通过身份验证,那看起来像是某种服务,对吧?
  • 是的,先生,.. 它是一个基于 servlet 的 Web 应用程序(Restful Web 服务),.. 因为该数据已经可以从另一个站点获得,所以我需要链接或镜像该站点。 . 用我的密钥,.. 我从像 xx.api.xxxxxx/v1/"my query" 这样的 url 获取数据,无论我在我的查询中给出什么,它都会从那个 API 站点生成,.. 但现在我是将查询输出到我的控制台,.. 在 java main() 方法上,.. 所以我希望输出到 Restful 服务,..

标签: java web-services rest tomcat7


【解决方案1】:

试试这个

你在你的 webservice 方法中编写了以下代码

public String myMethos(){

        String urlString="http://example.com/WS/StaticExample.php?method=sayHello&name=World";
        URL url=new URL(urlString);
        URLConnection connection=url.openConnection();
        connection.setDoOutput(true);
        OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
        out.close();
        JSONObject jsonobj = null;
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String decodedString="",URLstrJson="";

        while ((decodedString = in.readLine()) != null) {
          URLstrJson+=decodedString;
        }

说你的URLstrJson的值如下图

{
"worldpopulation":
[
{
"rank":1,
"country":"China",
"population":"1,354,040,000",
"flag":"http://www.androidbegin.com/tutorial/flag/china.png"
}
]
}

那么,

    jsonobj=new JSONObject(URLstrJson);

    System.out.println(jsonobj.toString());
    return jsonobj.toString();

}

【讨论】:

    【解决方案2】:

    根据我从您的问题中了解到的情况,您可以编写一个包装 REST 类,该类调用您当前的方法并将响应发送回用户。详细说明一下,假设你当前的类是 A,它的方法是 getData(),它当前是从 main 方法调用的。现在,您使用方法说 data() 创建一个 REST 类,并且在此函数中您只是在执行 return A.getData()。 您可以根据需要添加其他配置,如注释、参数类型等。

    【讨论】:

    • 感谢您的回复先生,。我明白你的回答先生,..如果我使用包装类,它会从main()方法获取数据到Restful Web服务,..如果是这样..请您提供任何教程或示例,...它需要因为该站点正在运行,但我需要像生成该 API 的所有进程的镜像一样创建,..
    • 您可以查看nuteck.wordpress.com/category/web-services。只需将 getDate() 函数修改为 String date = new A().getData(); return Response.status(200).entity(date).build();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多