如何使用 volley 将 Body Data 发送到 GET Method Request android?

Posted

技术标签:

【中文标题】如何使用 volley 将 Body Data 发送到 GET Method Request android?【英文标题】:How to send Body Data to GET Method Request android using volley? 【发布时间】:2020-02-01 11:35:40 【问题描述】:

我有一个 API,它在我向服务器发送令牌时向我发送一个 JSON 对象,我使用 GET 方法并且我必须在正文中发送令牌,而不是标题,当我将令牌放入正文时它在邮递员中正确工作但是我在 android studio 中有凌空服务器错误,我输入了错误响应。这是我的代码: 蚂蚁解决方案???请

   private void getFreightsFromServer()

    final String url =" https://parastoo.app/api/driver-cargo-list";

    JSONObject jsonData = new JSONObject();

    String token = G.getString("token");
    try
    
        jsonData.put("token", token);


     catch (JSONException e)
    
        e.printStackTrace();
    


    Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>()
    
        boolean isGet = false;

        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public void onResponse(JSONObject response)
        
            try
            
                    MyPost post = new MyPost();

                    JSONArray jsonArray = response.getJSONArray("results");

                    for (int i = 0; i < jsonArray.length(); i++)
                    
                        JSONObject tempJsonObject = jsonArray.getJSONObject(i);
                        JSONObject jsonOriginCustomer = new JSONObject(tempJsonObject.getString("origin_customer"));
                        post.setOriginCity(jsonOriginCustomer.getString("customerCity"));
                        JSONObject jsonDestinationCustomer = new JSONObject(tempJsonObject.getString("destination_customer"));
                        Log.d("result", jsonDestinationCustomer.getString("customerCity"));
                        post.setDestinationCity(jsonDestinationCustomer.getString("customerCity"));
                        freightsList.add(post);
                      //  isGet = true;
                        adapter.notifyDataSetChanged();
                    

             catch (JSONException e)
            
                e.printStackTrace();
            


        

    ;

    Response.ErrorListener errorListener = new Response.ErrorListener()
    
        @Override
        public void onErrorResponse(VolleyError error)
        

            Toast.makeText(getContext(), error.toString(), Toast.LENGTH_LONG).show();
            Log.d("jdbvdc", error.toString());
            error.printStackTrace();
        
    ;

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, jsonData, listener, errorListener);
    Log.d("fhdhdcf",jsonData.toString());


    final int socketTimeout = 100000;
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    request.setRetryPolicy(policy);

    AppSingleton.getInstance(getContext()).addToRequestQueue(request);

【问题讨论】:

【参考方案1】:

请显示您的错误消息。此外,我不确定在 GET 请求的正文中发送一些东西有多好。这个答案可能会对您有所帮助:

HTTP GET with request body

【讨论】:

你可以在这里看到你可以更具体。 ***.com/questions/39893772/…【参考方案2】:

这种类型的请求最好使用 post 方法。 但是,如果您想使用 GET 方法,那么您应该必须在 URL 中传递令牌。 下面是一个例子

final String username = etUname.getText().toString().trim();
final String password = etPass.getText().toString().trim();

URLline = "https://demonuts.com/Demonuts/JsonTest/Tennis/loginGETrequest.php?username="+username+"&password="+password;

【讨论】:

demonuts.com/android-volley-get-request-with-parameters

以上是关于如何使用 volley 将 Body Data 发送到 GET Method Request android?的主要内容,如果未能解决你的问题,请参考以下文章

使用volley时如何保持进度条状态?

如何在android中使用Volley库上传文件?

将 Android volley 导入 Android Studio

如何在Android开发中高效使用Volley网络框架

如何在Android开发中高效使用Volley网络框架

kotlin volley android POST 多部分/表单数据