我正在为我自己的项目开发Android应用程序, 还有另一个人在使用API REST控制面板,考虑到我不了解REST和API以及WEB服务,我现在正在学习如何访问API并将数据作为JSON和GET数据发送,但我不确定是什么发生得很清楚。 例如,我的应用程序中有登录字段,用户必须输入他/她的信息,Android应用程序应将数据发送到控制面板以检查此信息。 我正在与之合作的人告诉我搜索令牌来访问网络服务,但我无法单独理解这个概念, 我需要向我解释我现在应该做什么,以及我应该学习什么才能正确完成我的申请。 最诚挚的问候
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以使用HTTP& SPDY客户端,如okhttp等,或者你可以尝试在Udacity免费课程。这是Udacity Android Basics: Networking
答案 2 :(得分:1)
1-您必须使用任何库学习HTTP连接,我在这里为您推荐Volley,link
2-您必须学习JsonObject和JsonArray here
3-这是给您的示例:
RequestQueue queue = Volley.newRequestQueue(this);// this = context
final String url = yourURL
// prepare the Request
JsonArrayRequest getRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>()
{
@Override
public void onResponse(JSONArray response) {
//Log.d(TAG, "Login Response: " + response.toString());
// displayToast(R.string.toast_email_success);
if (response != null) {
try {
JSONArray JA = response;
int [] id = new int[JA.length()];
String [] name = new String[JA.length()];
String [] premalink = new String[JA.length()];
String [] descreption = new String[JA.length()];
String [] price_html = new String[JA.length()];
String [] stock_status = new String[JA.length()];
int [] stock_quantity = new int[JA.length()];
String [] image_src = new String[JA.length()];
for (int i = 0; i < JA.length(); i++) {
JSONObject JO = (JSONObject) JA.get(i);
JSONArray JA_inside_image = new JSONArray(JO.getJSONArray("images"));
if(JA_inside_image!=null)
{
JSONObject JO_inside = (JSONObject) JA_inside_image.get(0);
image_src[i]=JO_inside.getString("src");
}
if(JO.get("id")!=null) {
id[i] = JO.getInt("id");
}
else
{
id[i]=0;
}
if(JO.get("name")!=null) {
name[i]=JO.getString("name");
if(name[i]=="Product")
break;
}
else
{
name[i]="Not Available Name";
}
if(JO.get("permalink")!=null) {
premalink[i]=JO.getString("permalink");
}
else
{
premalink[i]="Not Available Link";
}
if(JO.get("description")!=null) {
descreption[i]=JO.getString("description");
}
else
{
descreption[i]="Not Available Descreption";
}
if(JO.get("price_html")!=null) {
price_html[i]=JO.getString("price_html");
}
else
{
price_html[i]="Not Available Link";
}
if(JO.get("stock_status")!=null) {
stock_status[i]=JO.getString("stock_status");
}
else
{
stock_status[i]="Not Available Status";
}
if(JO.get("stock_quantity")!=null) {
stock_quantity[i]=JO.getInt("stock_quantity");
}
else
{
stock_quantity[i]=0;
}
}
loadingProgressBar.setVisibility(View.GONE);
} catch (JSONException e)
{
e.printStackTrace();
loadingProgressBar.setVisibility(View.GONE);
}
}
else {
loadingProgressBar.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "Sorry Somesthing
Wrong Happend try again later", Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
loadingProgressBar.setVisibility(View.GONE);
// Log.d("Error.Response", error.getLocalizedMessage());
}
}
);
答案 3 :(得分:0)
您应该阅读有关HTTPRequests的内容。 您可以使用POST请求将一些数据发送到服务器,也可以使用GET请求从服务器接收数据。 还有一些有用的库,如Retrofit和Volley,你可以用它们以简单的方式发送GET,POST,....请求。