安卓凌空无连接错误



我在应用程序中对 10 多种不同的连接类型使用相同的请求类型,除了这种连接类型之外,它们都有效,我找不到原因,它们之间的唯一区别是发送的参数。如果我手动发送请求(通过在 URL 栏中输入数据(,一切都会恢复正常,但是当 Volley 尝试连接时,它说NoConnectionError正在发生。我已经用我的 4G 连接和 WIFI 连接尝试过这个,它总是返回相同的结果。

更新

好的,所以我在发送经度/经度时取出了参数,现在服务器发回了响应。我发送的经度/经度是错误的吗?

public void updateLoc(final double latitude, final double longitude, final Context context)
{
if (context != null)
{
RequestQueue queue = Volley.newRequestQueue(context);
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_FOR_ACCOUNT,
new Response.Listener<String>() {
@Override
public void onResponse(String response)
{
Log.e("Network", "Response " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error instanceof TimeoutError) {
Log.e(TAG,"Update Location Request timed out.");
}else if (error instanceof NoConnectionError){
Log.e(TAG,"Update Location no connection.");
} else if (error instanceof AuthFailureError) {
Log.e(TAG,"Auth failure");
} else if (error instanceof ServerError) {
Log.e(TAG,"Server Error");
} else if (error instanceof NetworkError) {
Log.e(TAG,"Network Error");
} else if (error instanceof ParseError) {
Log.e(TAG,"Parse Error");
}
}
}) {
//adding parameters to the request
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("command", "updateLoc");
params.put("appVersion", version);
params.put("androidVersionNumber", Integer.toString(Build.VERSION.SDK_INT));
params.put("email", userEmail);
params.put("lat", String.valueOf(latitude));
params.put("long", String.valueOf(longitude));
return params;
}
};

好的,我想出了我的错误是什么,你不能发布诸如longstring等内容,boolean它出现,即使它们被转换为字符串名称。我更改了这一行:

params.put("long", String.valueOf(longitude));

到这一行:

params.put("lng", String.valueOf(longitude));

一切都恢复了正常。我找不到任何文档说您不能将它们用作字符串名称。

相关内容

最新更新