【问题标题】:Android volley Body in post request发布请求中的 Android volley Body
【发布时间】:2019-02-23 21:14:04
【问题描述】:

我没有找到如何在我的 Post 请求中配置正文,我使用的是 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);
}

这是我的代码,下面是我的正文,问题是我不知道如何在我的帖子请求中翻译我的正文

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

不胜感激!

【问题讨论】:

    标签: java android post http-post android-volley


    【解决方案1】:

    你需要实现这样的事情:-

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

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

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

    使用 volley 更轻松、更有效地发布内容,

     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){
        }
    

    或者为了更好的方法,我个人向任何喜欢轻量​​级 Volley for Api 集成的 Android 开发人员推荐一个库。

    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");
       }
    

    让我知道进一步的回应

    【讨论】:

    • 谢谢你的回答,所以我需要这样做吗? String var = "xmlns:m2m=\"http://www.onem2m.org/xml/protocols\" rn=\"MY_SENSOR\" api=\"app-sensor\" lbl=\"Type/sensor Category/temperature Location/home \"rr=\"false"; 我如何使用 var ?
    • 哦,这不是你需要实现变量的东西,你可以直接使用它们,params.put("m2m:ae", "xmlns:m2m=\"onem2m.org/xml/protocols\" rn= \"MY_SENSOR");
    • 请查看更新后的答案,我将向您展示另一种或简单有效的使用 volley 发布内容的方法。如果您觉得这很有用,请投票给我的答案
    • 非常感谢,它现在真的帮助了我,我现在使用模拟器将请求发送到我的本地主机,我有任何机会遇到这个错误你知道我该如何解决这个问题吗? 2019-02-24 11:57:11.329 20794-20794/com.example.myapplication D/Error.Response: com.android.volley.NoConnectionError: java.net.ConnectException: Failed to connect to /127.0.0.1:8080 我的 URL 已启动,我可以使用邮递员访问它
    • 为了得到实际错误,首先做一些基本检查 1. 检查您是否在清单中询问 Internet 权限 2. 在 Api 调用之前您需要检查 Internet 连接(显示在更新的答案中)我包括 Internet 检查类以及如何使用方法请让我知道进一步的回应
    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多