如何在网站上发送和检索数据?

时间:2018-02-03 06:26:50

标签: java android

好的,伙计们,所以我最近正在开发Android应用程序,它使用用户的ID登录网站并将数据提取到我的手机。

现在,有登录页面:http://14.140.201.189:8280/opac/myaccount/myAccount.html

我想发送get和post请求并检索对应于用户名的数据并在我的android app中以我的风格显示它。我不想使用WebView加载整个网页,因为网页不是被动的因此所有组件都没有到位。

您是否有任何想法或提示/方法/指南/任何如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您不能将html页面用作API。

  1. 你需要一个API(php等),它将返回JSON / XML格式的数据,而不是HTML或任何其他代码,如JS。
  2. 在你的应用程序中解析它并做你想做的事。

答案 1 :(得分:0)

您可以使用简单的排球API来发出请求并从数据库中收集信息。从edittext获取用户名和密码。传递给下面的功能。声明必要的所有类型的变量。编写简单的PHP脚本进行登录。这是非常简单和基本的代码。

/*************** PASS YOUR USERNAME AND PASSWORD TO FUNCTION *******************/
public void userValidationInfo(String username, String password){
String url = "url goes here"; // example.com/login.php 
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                JSONArray dataArray;
                JSONObject jsonObject;
                String user_id,user_type,

                try {
                    jsonObject = new JSONObject(response);
                    dataArray = jsonObject.getJSONArray(JSON_ARRAY);

                        JSONObject obj;
                        try {
                            /***************** GET INFORMATION FROM REQUEST HERE ************************/
                            obj = dataArray.getJSONObject(0);
                            user_id = obj.getString(TAG_USER_ID);
                            user_type = obj.getString(TAG_USER_TYPE);


                            //Toast.makeText(getActivity(), brand_names, Toast.LENGTH_LONG).show();

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                } catch (JSONException e) {
                    e.printStackTrace();
                }
               /***************** SET YOUR USER INFO HERE ****************/
                Log.e(TAG, "onResponse: "+response);


            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        /****************** SHOW WAITING MESSAGE / ERROR MESSAGE HERE *****************/
        Toast.makeText(getContext(), "Taking bit longer ...", Toast.LENGTH_LONG).show();
    }

}){
/******************** POST YOUR PARAMETERS HERE *************************/
    @Override
    protected Map<String, String> getParams()
    {
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", username);
        params.put("password", password);
        return params;
    }
};
queue1.add(stringRequest);
}

了解更多信息check this gist