尚未连接api,收到错误消息

时间:2020-06-01 06:49:56

标签: java android json firebase-realtime-database

我从站点购买了代码,现在执行该代码时遇到运行时错误。我认为这与网址格式不正确有关。

public class ApiRequest {

public static void Call_Api (final Context context, String url, JSONObject jsonObject,
                             final Callback callback){

    final String [] urlsplit=url.split("/");
    Log.d(Variables.tag,urlsplit[urlsplit.length-1]);

    if(jsonObject!=null)
    Log.d(Variables.tag+urlsplit[urlsplit.length-1],jsonObject.toString());

     JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url, jsonObject,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {

                    Log.d(Variables.tag+urlsplit[urlsplit.length-1],response.toString());

                    if(callback!=null)
                    callback .Responce(response.toString());

                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(Variables.tag+urlsplit[urlsplit.length-1],error.toString());
            Toast.makeText(context, "Api run timeout", Toast.LENGTH_SHORT).show();
            if(callback!=null)
              callback .Responce(error.toString());

        }
    });

    RequestQueue requestQueue = Volley.newRequestQueue(context);
    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    requestQueue.add(jsonObjReq);
}
}

它应该接收的网址是https://example.com/API/。 我严重怀疑它与反斜杠有关,尝试将url更改为非结尾斜杠,但是它不起作用。有人可以帮我吗?

在一位用户发表评论时检查错误/堆栈跟踪。并发现这是问题所在。

D/thumkaindex.php?p=discover: com.android.volley.ParseError: org.json.JSONException: Value Connection of type java.lang.String cannot be converted to JSONObject

因此,我添加了JSON转换代码。该应用程序从域访问api,但是页面位置非常错误。它的位置是example.com/API/index.php,应用程序名称是thumka,但是我看不到D / thumkaindex.php的来源。

这是解析URL的地方。代码有问题吗?

public class ApiRequest {

public static void Call_Api (final Context context, String url, JSONObject jsonObject,
                             final Callback callback){

    final String [] urlsplit=url.split("/");
    Log.d(Variables.tag,urlsplit[urlsplit.length-1]);

    if(jsonObject!=null)
    Log.d(Variables.tag+urlsplit[urlsplit.length-1],jsonObject.toString());

     JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url, jsonObject,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {

                    Log.d(Variables.tag+urlsplit[urlsplit.length-1],response.toString());

                    if(callback!=null)
                    callback .Responce(response.toString());

                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(Variables.tag+urlsplit[urlsplit.length-1],error.toString());
            Toast.makeText(context, "Api run timeout", Toast.LENGTH_SHORT).show();
            if(callback!=null)
              callback .Responce(error.toString());

        }
    });

    RequestQueue requestQueue = Volley.newRequestQueue(context);
    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    requestQueue.add(jsonObjReq);
 }
 }

0 个答案:

没有答案