Android 在 post 请求中截击 Body

Android volley Body in post request

我没有找到如何在我的 Post 请求中配置 body,我正在使用 android studio

`

private RequestQueue mQueue;

private void send() {
    Log.i("start", "start");
    final String url1 = "http://127.0.0.1:8080/~/in-cse";

    JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url1, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.d("Response", response.toString());

                }
            },
            new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("Error.Response", String.valueOf(error));
                }
            }
    ) {
        @Override
        public Map getHeaders() throws AuthFailureError {
            Log.i("rentrer dedans", "Headers");
            HashMap headers = new HashMap();
            headers.put("X-M2M-Origin", "admin:admin");
            headers.put("Accept", "application/xml");
            return headers;
        }
      @Override
        public Map<String,String> getParams(){
        Map<String,String> params = new HashMap<String, String>();
        params.put("m2m:ae", "xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="MY_SENSOR");
        params.put("api", "app-sensor");
        params.put("lbl", "Type/sensor Category/temperature Location/home");
        params.put("ff", "false");
        return params;
    }

    };
    // add it to the RequestQueue  
    mQueue.add(getRequest);
}

这是我的代码,下面是我的 body,问题是我不知道如何在我的 post 请求

中翻译我的 body

<m2m:ae xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="MY_SENSOR" > <api>app-sensor</api> <lbl>Type/sensor Category/temperature Location/home</lbl> <rr>false</rr> </m2m:ae>

非常感谢您的帮助!

你需要像这样实现:-

    String var="xmlns:m2m=\"http://www.onem2m.org/xml/protocols\" rn=\"MY_SENSOR";

此处,'\' 可帮助您在字符串值中插入更多双引号。

如果有任何遗漏或您需要更多帮助,请告诉我。 觉得有用请点个赞

使用 volley post 的简单且更有效的方法,

 JSONObject jsonObject= new JSONObject();
 try{
     jsonObject.put("m2m:ae", "xmlns:m2m=\"http://www.onem2m.org/xml/protocols\" rn=\"MY_SENSOR");
     jsonObject.put("api", "app-sensor");
     jsonObject.put("lbl", "Type/sensor Category/temperature Location/home");
    jsonObject.put("ff", "false");
    }catch(JSONException e){
    }

或者对于更多更好的方法,有一个库,我个人推荐给任何 android 喜欢轻量级 Volley 的 Api 集成的开发人员。

https://github.com/Lib-Jamun/Volley

dependencies {
  compile 'tk.jamun:volley:0.0.4'
}

使用此版本或此版本的更新版本可以更有效地使用 Volley。

检查互联网连接:

public class CheckConnection {

  public static boolean checkConnection(Activity activity) {
    ConnectivityManager cm =
            (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = null;
    if (cm != null) {
        activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null &&
                activeNetwork.isConnected()) {
            return true;
        } else {
            MySnackBar.getInstance().showSnackBarForMessage(activity, R.string.connection_check_no_internet);
        }
    }
    return false;
  }

public static boolean checkCon(Context context) {
    ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = null;
    if (cm != null) {
        activeNetwork = cm.getActiveNetworkInfo();
        return activeNetwork != null &&
                activeNetwork.isConnected();
    }
    return false;
  }
}

然后只需要像这样编码

   If (CheckConnection.checkCon(this)){
       Call Volley;
   }else{
       Log.d("Tag","No internet");
   }

让我知道进一步的回复