我尝试将我的应用与服务器连接但出错了。请帮忙!
我尝试使用排球库将我的应用程序连接到服务器,但每当我尝试运行我的代码时,我都会收到以下错误
不兼容的类型:int无法转换为String
我尝试从String更改为int,但它没有帮助!
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, **<-------------error here**
showUrl, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray student = response.getJSONArray("student");
for (int i=0;i<student.length();i++){
JSONObject students = student.getJSONObject(i);
String firstname = students.getString("firstname");
String lastname = students.getString("lastname");
String age = students.getString("age");
result.append(firstname+""+lastname+""+age+""+"\n");
}
result.append("==\n");
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonObjectRequest);
}
});
}
}
答案 0 :(得分:1)
现在遇到了你的问题。
您使用JsonObjectRequest
中Volley
的{{1}}方法不正确。
您正在调用此方法
JsonObjectRequest(String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener)
而不是
JsonObjectRequest(int method, String url, JSONObject jsonRequest,
Listener<JSONObject> listener, ErrorListener errorListener)
其中第一个参数是int
。
您传递了4个参数,因此调用了上方法,将int method
转换为String url
你可以通过传递5个参数来修复它,然后一切都应该很好。
答案 1 :(得分:0)
requestQueue = Volley.newRequestQueue(this);
//关注这个
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
"url", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonObjectRequest);