Android截击EOFEException
我有一个使用截击的简单应用程序,如下所示:Android截击EOFEException,android,android-volley,eofexception,Android,Android Volley,Eofexception,我有一个使用截击的简单应用程序,如下所示: StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("VolleyController", "Received volley response: " + response);
callback.onCallback(OperationOutcome.SUCCESS, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// This is null.
NetworkResponse response = error.networkResponse;
Log.e("VolleyManager", "Received error response from volley: ", error );
callback.onCallback(OperationOutcome.FAILURE, null);
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
// This will instantiate an empty JSON request with the correct format.
new JSONObject("{}");
我在网上找到了一些关于这个问题的其他答案,但他们没有解决它。请求未到达服务器
多谢各位
编辑
我在舱单上有两个权限:
<uses-permission android:name="android.permission.INTERNET" />
互联网在设备上运行正常。您的设备是否已启用互联网? 您是否在清单中设置了INTERNET权限 编辑:
检查您的URL是否正确。您的设备是否已启用internet? 您是否在清单中设置了INTERNET权限 编辑:
检查您的URL是否正确。问题是由于我发送的请求为空。我认为Volley会自己将其转换为正确的JSON表示(
{}
)。相反,我认为请求只是一个null
,这导致了异常。为了解决这个问题,我在JSONObjectRequest
中更改了StringRequest
。这有一个构造函数,它将一个JSONObject
作为输入,如下所示:
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("VolleyController", "Received volley response: " + response);
callback.onCallback(OperationOutcome.SUCCESS, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// This is null.
NetworkResponse response = error.networkResponse;
Log.e("VolleyManager", "Received error response from volley: ", error );
callback.onCallback(OperationOutcome.FAILURE, null);
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
// This will instantiate an empty JSON request with the correct format.
new JSONObject("{}");
我仍然不明白为什么凌空抽射本身不起作用,我只是出于好奇想理解。无论如何,在这之后,我决定改用性能更高、设置更简单的改装
谢谢大家的帮助 问题是因为我发送的请求是空的。我认为Volley会自己将其转换为正确的JSON表示(
{}
)。相反,我认为请求只是一个null
,这导致了异常。为了解决这个问题,我在JSONObjectRequest
中更改了StringRequest
。这有一个构造函数,它将一个JSONObject
作为输入,如下所示:
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("VolleyController", "Received volley response: " + response);
callback.onCallback(OperationOutcome.SUCCESS, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// This is null.
NetworkResponse response = error.networkResponse;
Log.e("VolleyManager", "Received error response from volley: ", error );
callback.onCallback(OperationOutcome.FAILURE, null);
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
// This will instantiate an empty JSON request with the correct format.
new JSONObject("{}");
我仍然不明白为什么凌空抽射本身不起作用,我只是出于好奇想理解。无论如何,在这之后,我决定改用性能更高、设置更简单的改装
谢谢大家的帮助 两个问题都是肯定的。我已经用我的清单许可更新了答案。如果问题是由那件事引起的,我真的会感到羞愧(对这两个问题都是肯定的。我已经用我的清单权限更新了答案。如果问题是由…(首先检查
url
是否真的起作用,在浏览器中点击它。)是的,它起作用了。首先检查url
是否真的起作用,在浏览器中点击它..是的,它起作用了。