コード例 #1
0
        /// <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();
        }
コード例 #2
0
 /// <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);
 }