好的,伙计们,所以我最近正在开发Android应用程序,它使用用户的ID登录网站并将数据提取到我的手机。
现在,有登录页面:http://14.140.201.189:8280/opac/myaccount/myAccount.html
我想发送get和post请求并检索对应于用户名的数据并在我的android app中以我的风格显示它。我不想使用WebView加载整个网页,因为网页不是被动的因此所有组件都没有到位。
您是否有任何想法或提示/方法/指南/任何如何做到这一点?
答案 0 :(得分:2)
您不能将html页面用作API。
答案 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。