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");
}
让我知道进一步的回复
我没有找到如何在我的 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");
}
让我知道进一步的回复