【问题标题】:Android Volley auth token problem post requestAndroid Volley 身份验证令牌问题发布请求
【发布时间】:2019-03-15 19:07:36
【问题描述】:

我尝试了很多想法,观看了无数的 youtube 视频,在 google 上搜索...

这是我第一次连接后端服务器。

public class MainActivity extends AppCompatActivity {

private String token;
private String email;
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RequestQueue requestQueue;
private List<ListItem> listItems;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.recyclerview);
    recyclerView.setHasFixedSize(true);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(linearLayoutManager);
    Submit();
    listItems = new ArrayList<>();
    ListItemAdapter listItemAdapter = new ListItemAdapter(MainActivity.this, listItems);
    recyclerView.setAdapter(listItemAdapter);
    loadRecyclerViewData();
}

private void Submit() {

    requestQueue = Volley.newRequestQueue((getApplicationContext()));
    StringRequest postRequest = new StringRequest(Request.Method.POST, URL_DATA + "api-user-get",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    try {
                        JSONObject parentObject = new JSONObject(response);
                        JSONObject childObject = parentObject.getJSONObject("result");
                        token=childObject.getString("token");

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }    
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
    ) {

        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("email", "t1@gmail.com");

            return params;
        }        
    };
    requestQueue.add(postRequest);
}        

private void loadRecyclerViewData(){

            StringRequest listRequest = new StringRequest(Request.Method.POST,URL_DATA+"api-spot-get-all",
                    new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        JSONArray array = jsonObject.getJSONArray("result");
                        for (int i =0; i<array.length(); i++) {
                            JSONObject o = array.getJSONObject(i);
                            ListItem list = new ListItem(
                                    o.getString("id"),
                                    o.getString("name"),
                                    o.getString("country"),
                                    o.getString("whenToGo"),
                                    o.getBoolean("isFavorite")
                            );
                            listItems.add(list);
                        }
                        adapter = new ListItemAdapter(getApplicationContext(), listItems);
                        recyclerView.setAdapter(adapter);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
 //
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }){

                @Override
                public Map<String, String> getHeaders() {
                    Map<String, String> headers = new HashMap<String, String>();
                    headers.put("Content-Type", "application/json");
                    headers.put("token", "token");
                    return headers;
                }

                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String,  String>();
                    params.put("country", "");
                    params.put("windProbability", "");
                    return params;
                }
};

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(listRequest);        
}            
}

【问题讨论】:

  • 查看此链接可能会对您有所帮助,lifs.co.in/volley-in-android
  • ` headers.put("token", "token");`您将“token”作为令牌发送

标签: java android android-volley


【解决方案1】:

试试这个

public class MainActivity extends AppCompatActivity {
private String token;
private String email;
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RequestQueue requestQueue;
private List<ListItem> listItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.recyclerview);
    recyclerView.setHasFixedSize(true);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(linearLayoutManager);
    Submit();

}
private void Submit() {


    requestQueue = Volley.newRequestQueue((getApplicationContext()));
    StringRequest postRequest = new StringRequest(Request.Method.POST, URL_DATA + "api-user-get",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {



                    try {
                        JSONObject parentObject = new JSONObject(response);
                        JSONObject childObject = parentObject.getJSONObject("result");
                        token=childObject.getString("token");

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

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
    ) {

        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("email", "t1@gmail.com");

            return params;
        }


    };
    requestQueue.add(postRequest);
}








private void loadRecyclerViewData(String token){

            StringRequest listRequest = new StringRequest(Request.Method.POST,URL_DATA+"api-spot-get-all",
                    new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        JSONArray array = jsonObject.getJSONArray("result");
                        for (int i =0; i<array.length(); i++) {
                            JSONObject o = array.getJSONObject(i);
                            ListItem list = new ListItem(
                                    o.getString("id"),
                                    o.getString("name"),
                                    o.getString("country"),
                                    o.getString("whenToGo"),
                                    o.getBoolean("isFavorite")
                            );
                            listItems.add(list);
                        }
                        adapter = new ListItemAdapter(getApplicationContext(), listItems);
                        recyclerView.setAdapter(adapter);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
 //
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }){

                @Override
                public Map<String, String> getHeaders() {
                    Map<String, String> headers = new HashMap<String, String>();
                    headers.put("Content-Type", "application/json");
                    headers.put("token", token);
                    return headers;
                }



                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String,  String>();
                    params.put("country", "");
                    params.put("windProbability", "");
                    return params;
                }
};


    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(listRequest);


}



}

【讨论】:

  • 仍然无法正常工作,请尝试一下。我会在睡一会后再试一次。如果我很新鲜,也许我会看看我做错了什么:|
猜你喜欢
  • 2018-11-12
  • 2016-04-04
  • 1970-01-01
  • 2018-07-22
  • 2021-10-15
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
相关资源
最近更新 更多