Rails与android的RESTful API连接

时间:2015-08-11 13:35:46

标签: android devise ruby-on-rails-4.2 rails-geocoder

您好我一直在学习rails,现在我需要制作一些移动应用程序android& IOS连接到我的webapp,我知道API用于建立端点/ url之类的连接,然后使用每个人和每个人的方法来制作它,我的问题我怎么知道或测试我的API for手机工作正常吗?

我目前正在做android标准杆,我不知道从哪里开始。谁也帮助指出在哪里学习它们,我的意思是在我的webapp中创建用户,我使用设备所以我需要制作一个Android应用程序来制作用户,将数据插入我的PG(postgresql),得到一些geolocaion(地理编码器) ,从webapp,但我不知道从哪里开始android如何发送和从中获取数据,还如何测试我所做的API是否正常工作....

任何帮助都将非常感谢特别链接到rails版本4的教程。+

1 个答案:

答案 0 :(得分:1)

我告诉你最简单的方法来做这件事。

  1. 首先使用rails制作一个json格式化的api。并且您可以创建一个可以接受GET方法值的URL(www.exmp.com?val=asd)。
  2. 在您的Android应用程序中,创建一个类名 JsonParser
  3. 复制并粘贴以下代码。

    private String jsonurl;
    
    public JsonParser(String url) {
        this.jsonurl = url;
    }
    
    public String fetchJSON(){
        try {
            URL url = new URL(jsonurl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(15000);
            conn.setConnectTimeout(25000);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            conn.connect();
            InputStream stream = conn.getInputStream();
            String data = convertStreamToString(stream);
            return data;
    
        } catch (Exception e) {
            Log.d("Check", e.getMessage());
            return null;
        }
    }
    private String convertStreamToString(java.io.InputStream is) {
        java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";
    }
    
    1. 之后在Asynctask线程中创建该类的Object。并将URL作为参数提供。您将获得Json格式的数据。
    2. 要获取实际数据,您需要创建 JSONObject 类型对象并像这样调用。

      JSONObject reader = new JSONObject(jsonData); // returning json formatted data
      this.status = reader.getString("status");
      

      现在,您可以使java Bean获取或设置值以供进一步使用。