在 Android ,Volley 中,如何传递单个字符串参数并接收字符串结果?
In Android ,Volley , How to pass a single string Parameter and receive a string result?
想要发送单个参数并接收一个字符串类型的结果,但它不起作用。
我在浏览器中用这个 Url 测试了我的 RESTfull API,它工作正常:
http://192.168.1.20:88/Home/testme?a=abc
但是当想在 Android Studio(Java 语言)中使用它时,它不起作用并且异常消息为空。
在阅读了一些帖子 like this 后,我很困惑是否应该使用 JSON 类型发送?
如果是,为什么?
String url = "http://192.168.1.20:88/Home/testme";
RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
tVMessage.setText(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
tVMessage.setText("That didn't work!"+error.getMessage());
}
}){
@Override
protected Map<String,String> getParams() {
Map<String,String> params = new HashMap<String, String>();
params.put("a","test value");
return params;
}
@Override
public Map<String,String> getHeaders() {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}
};
queue.add(stringRequest);
我认为您使用的是 GET 请求,而不是 POST
所以只需将 URL 更改为这个
String url = "http://192.168.1.20:88/Home/testme?a=abc";
并将Request.Method.POST
更改为Request.Method.GET
您需要将 url 更改为:
String url = "http://192.168.1.20:88/Home/testme?a=abc";
因为是GET请求,getParams()函数只用在POST请求
想要发送单个参数并接收一个字符串类型的结果,但它不起作用。
我在浏览器中用这个 Url 测试了我的 RESTfull API,它工作正常:
http://192.168.1.20:88/Home/testme?a=abc
但是当想在 Android Studio(Java 语言)中使用它时,它不起作用并且异常消息为空。 在阅读了一些帖子 like this 后,我很困惑是否应该使用 JSON 类型发送? 如果是,为什么?
String url = "http://192.168.1.20:88/Home/testme";
RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
tVMessage.setText(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
tVMessage.setText("That didn't work!"+error.getMessage());
}
}){
@Override
protected Map<String,String> getParams() {
Map<String,String> params = new HashMap<String, String>();
params.put("a","test value");
return params;
}
@Override
public Map<String,String> getHeaders() {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}
};
queue.add(stringRequest);
我认为您使用的是 GET 请求,而不是 POST
所以只需将 URL 更改为这个
String url = "http://192.168.1.20:88/Home/testme?a=abc";
并将Request.Method.POST
更改为Request.Method.GET
您需要将 url 更改为:
String url = "http://192.168.1.20:88/Home/testme?a=abc";
因为是GET请求,getParams()函数只用在POST请求