/// <summary> /// GetWalkingRoutePlanningResult /// </summary> /// <param name="latLng1">origin latitude and longitude</param> /// <param name="latLng2">destination latitude and longitude</param> /// <param name="listener">network listener</param> /// <param name="count">last number of retries</param> /// <param name="needEncode">dose the api key need to be encoded</param> private static void GetWalkingRoutePlanningResult(LatLng latLng1, LatLng latLng2, IOnNetworkListener listener, int count, bool needEncode) { int curCount = ++count; Log.Info(TAG, "current count: " + curCount); //creating thread System.Threading.Thread t = new System.Threading.Thread(() => { try { Response response = NetClient.GetNetClient().GetBicyclingRoutePlanningResult(latLng1, latLng2, needEncode); if (null != response && null != response.Body() && response.IsSuccessful) { try { string result = response.Body().String(); if (null != listener) { listener.RequestSuccess(result); } return; } catch (IOException e) { Log.Error(TAG, e.Message); } } string returnCode = ""; string returnDesc = ""; bool need = needEncode; try { string result = response.Body().String(); JSONObject jsonObject = new JSONObject(result); returnCode = jsonObject.OptString("returnCode"); returnDesc = jsonObject.OptString("returnDesc"); } catch (NullPointerException e) { returnDesc = "Request Fail!"; } catch (IOException e) { returnDesc = "Request Fail!"; } catch (JSONException e) { Log.Error(TAG, e.Message); } if (curCount >= MAX_TIMES) { if (null != listener) { listener.RequestFail(returnDesc); } return; } if (returnCode.Equals("6")) { need = true; } GetWalkingRoutePlanningResult(latLng1, latLng2, listener, curCount, need); } finally { //finished executing. } }); //t.IsBackground = true; t.Start(); }
/// <summary> /// GetWalkingRoutePlanningResult /// </summary> /// <param name="latLng1">origin latitude and longitude</param> /// <param name="latLng2">destination latitude and longitude</param> /// <param name="listener">network listener</param> public static void GetWalkingRoutePlanningResult(LatLng latLng1, LatLng latLng2, IOnNetworkListener listener) { GetWalkingRoutePlanningResult(latLng1, latLng2, listener, 0, false); }