com.android.volley.ServerError 在 Android 工作室
com.android.volley.ServerError on Android studio
我的应用程序非常简单,Main Acitvity 只是 4 个按钮,可以转到相关 activity,其他 4 个 Activity 用于查看、添加、更新和删除产品。我有一个名为“AppController”的文件,其中有我的连接 'defined',这是它的代码:
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
//this is a singleton class where we initialize all volley core objects
public class AppController extends Application{
public static final String TAG = AppController.class.getSimpleName();
private RequestQueue mRequestQueue;
private static AppController mInstance;
public static String baseUrl= "https://example.000webhostapp.com/";
/** Not the actual link */
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static synchronized AppController getmInstance(){
return mInstance;
}
public RequestQueue getRequestQueue(){
if(mRequestQueue == null){
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> req){
req.setTag(TAG);
getRequestQueue().add(req);
}
public void cancelPendingRequests(Object tag){
if(mRequestQueue != null){
mRequestQueue.cancelAll(tag);
}
}
}
我已经确保我的服务器正在使用 Postman 工作,我使用它添加了一个产品,并且它工作正常。
我已经检查了其他帖子,但无法将其与我的代码联系起来(我在 android 开发方面有点新手)
更新,我在最后将以下代码添加到我的 AppController 文件中(只是帮助将来可能需要它的人)
public void onErrorResponse(VolleyError error) {
NetworkResponse response = error.networkResponse;
if (response != null && response.statusCode == 404) {
try {
String res = new String(response.data,
HttpHeaderParser.parseCharset(response.headers, "utf-8"));
// Now you can use any deserializer to make sense of data
JSONObject obj = new JSONObject(res);
//use this json as you want
} catch (UnsupportedEncodingException e1) {
// Couldn't properly decode data to string
e1.printStackTrace();
} catch (JSONException e2) {
// returned data is not JSONObject?
e2.printStackTrace();
}
}
}
我的应用程序非常简单,Main Acitvity 只是 4 个按钮,可以转到相关 activity,其他 4 个 Activity 用于查看、添加、更新和删除产品。我有一个名为“AppController”的文件,其中有我的连接 'defined',这是它的代码:
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
//this is a singleton class where we initialize all volley core objects
public class AppController extends Application{
public static final String TAG = AppController.class.getSimpleName();
private RequestQueue mRequestQueue;
private static AppController mInstance;
public static String baseUrl= "https://example.000webhostapp.com/";
/** Not the actual link */
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
public static synchronized AppController getmInstance(){
return mInstance;
}
public RequestQueue getRequestQueue(){
if(mRequestQueue == null){
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> req){
req.setTag(TAG);
getRequestQueue().add(req);
}
public void cancelPendingRequests(Object tag){
if(mRequestQueue != null){
mRequestQueue.cancelAll(tag);
}
}
}
我已经确保我的服务器正在使用 Postman 工作,我使用它添加了一个产品,并且它工作正常。
我已经检查了其他帖子,但无法将其与我的代码联系起来(我在 android 开发方面有点新手)
更新,我在最后将以下代码添加到我的 AppController 文件中(只是帮助将来可能需要它的人)
public void onErrorResponse(VolleyError error) {
NetworkResponse response = error.networkResponse;
if (response != null && response.statusCode == 404) {
try {
String res = new String(response.data,
HttpHeaderParser.parseCharset(response.headers, "utf-8"));
// Now you can use any deserializer to make sense of data
JSONObject obj = new JSONObject(res);
//use this json as you want
} catch (UnsupportedEncodingException e1) {
// Couldn't properly decode data to string
e1.printStackTrace();
} catch (JSONException e2) {
// returned data is not JSONObject?
e2.printStackTrace();
}
}
}