Android studio 如何通过Androids Volley包访问api.openrouteservice.org

Android studio 如何通过Androids Volley包访问api.openrouteservice.org,android-studio,request,android-volley,Android Studio,Request,Android Volley,我想从我的Android应用程序访问openrouteservice API上的数据,特别是地球上两个给定坐标之间的距离。 我已经从另一个API发出了请求并得到了可行的响应,该API使用该请求试图执行的相同代码样式将两个给定地址转换为它们的latlong坐标。它运行良好,坐标到达,我可以进一步利用它们,没有问题 我的问题是,我似乎错误地访问了API,因为如果我按照如下所示记录URL并将其从调试窗口复制到浏览器中,它会发送请求,获得响应并在浏览器窗口中显示。 但是我的应用程序没有收到来自API的响

我想从我的Android应用程序访问openrouteservice API上的数据,特别是地球上两个给定坐标之间的距离。 我已经从另一个API发出了请求并得到了可行的响应,该API使用该请求试图执行的相同代码样式将两个给定地址转换为它们的latlong坐标。它运行良好,坐标到达,我可以进一步利用它们,没有问题

我的问题是,我似乎错误地访问了API,因为如果我按照如下所示记录URL并将其从调试窗口复制到浏览器中,它会发送请求,获得响应并在浏览器窗口中显示。 但是我的应用程序没有收到来自API的响应,因为onResponse代码位从未执行,并且“fetchdone”日志从未出现在实际的调试日志中。 下面是我的代码设置,它使用截取来访问HTTP请求,对于其他API也很好

    @Override
    protected String doInBackground(String... strings) {
        Log.d("Run =>","Query 3");
        String targetKoordURL = null;
        String startKoordURL = null;
        try {
            startKoordURL = startK.getString("lon").concat(",").concat(startK.getString("lat"));
            targetKoordURL = targetK.getString("lon").concat(",").concat(targetK.getString("lat"));
        } catch (JSONException e) {
            e.printStackTrace();
        }
        String URLfin = "https://api.openrouteservice.org/v2/directions/driving-car?api_key=5b3ce3597851110001cf624823e587e7a80c4c6ab02af6d394585213&start="+startKoordURL+"&end="+targetKoordURL;
        Log.d("Debug =>", URLfin);

        JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, URLfin, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                store = response;
                Log.d("Run =>", "Fetch done!");
                continueImp();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if(error instanceof TimeoutError || error instanceof NoConnectionError){
                    sideFetcherHTTPRequestStart replace = new sideFetcherHTTPRequestStart();
                    replace.execute();

                    Log.d("VOLLEY_ERROR", "Retrying on Kilometer request");
                }

                error.printStackTrace();
            }
        }){
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("Accept", "application/json,application/geo+json,application/gpx+xml,img/png; charset=utf-8");

                return params;
            }
        };

        return null;
    }
@覆盖
受保护的字符串背景(字符串…字符串){
Log.d(“Run=>”,“Query 3”);
字符串targetKoordURL=null;
字符串startKoordURL=null;
试一试{
startKoordURL=startK.getString(“lon”).concat(“,”).concat(startK.getString(“lat”);
targetKoordURL=targetK.getString(“lon”).concat(“,”).concat(targetK.getString(“lat”));
}捕获(JSONException e){
e、 printStackTrace();
}
字符串URLfin=”https://api.openrouteservice.org/v2/directions/driving-car?api_key=5b3ce3597851110001cf624823e587e7a80c4c6ab02af6d394585213&start=“+startKoordURL+”&end=“+targetKoordURL;
Log.d(“Debug=>”,URLfin);
JsonObjectRequest req=新的JsonObjectRequest(Request.Method.GET,URLfin,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
存储=响应;
d(“Run=>,“fetchdone!”);
continueImp();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
if(TimeoutError的错误实例| | NoConnectionError的错误实例){
sideFetcherHTTPRequestStart replace=新的sideFetcherHTTPRequestStart();
replace.execute();
Log.d(“截击错误”,“公里请求重试”);
}
错误。printStackTrace();
}
}){
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map params=新的HashMap();
参数put(“Accept”,“application/json,application/geo+json,application/gpx+xml,img/png;charset=utf-8”);
返回参数;
}
};
返回null;
}

如果忘记将请求添加到请求队列,请尝试执行以下操作:

// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);

JsonObjectRequest req = new JsonObjectRequest(/*params*/);

//add above request to queue
queue.add(req);

我也是排球新手,我猜你忘了将请求添加到
RequestQueue
`object。哦,我的天哪,我真蠢。在网上有点名气吧,先生,你对我大脑能力不足的精确认识令人震惊,我向你的扫描能力低头