java - Android Google Geolocation api 返回 403 错误

标签 java android google-geolocation

我正在尝试构建可以从 Google Geolocation Api 获取用户位置的 Android 应用程序。我配置和设置计费帐户

我的设置是

  1. 将配额增加到 100/请求/用户
  2. 结算帐户设置
  3. 允许的ip:任意

我正在使用异步任务类

   // 1. create HttpClient
                HttpClient httpclient = new DefaultHttpClient();

                // 2. make POST request to the given URL
                HttpPost httpPost = new HttpPost("https://www.googleapis.com/geolocation/v1/geolocate?key=API_KEY");

                String json = "";

                // 3. build jsonObject
                JSONObject jsonObject = new JSONObject();
                jsonObject.accumulate("homeMobileCountryCode", 310);
                jsonObject.accumulate("homeMobileNetworkCode", 410);
                jsonObject.accumulate("radioType", "gsm");
                jsonObject.accumulate("carrier", "vodafone");

                JSONArray cellTowersArray = new JSONArray();;
                JSONObject cellTowerObject = new JSONObject();;
                cellTowerObject.accumulate("cellId", 42);
                cellTowerObject.accumulate("locationAreaCode", 415);
                cellTowerObject.accumulate("mobileCountryCode", 310);
                cellTowerObject.accumulate("mobileNetworkCode", 410);
                cellTowerObject.accumulate("age", 0);
                cellTowerObject.accumulate("signalStrength", -60);
                cellTowerObject.accumulate("timingAdvance", 15);
                cellTowersArray.put(cellTowerObject);
                jsonObject.accumulate("cellTowers", cellTowersArray);

                JSONArray wifiAccessPointsArray = new JSONArray();
                JSONObject wifiAccessPointObject = new JSONObject();
                wifiAccessPointObject.accumulate("macAddress", "01:23:45:67:89:AB");
                wifiAccessPointObject.accumulate("age", 0);
                wifiAccessPointObject.accumulate("channel", 11);
                wifiAccessPointObject.accumulate("signalToNoiseRatio", 40);
                wifiAccessPointsArray.put(wifiAccessPointObject);
                jsonObject.accumulate("wifiAccessPoints", wifiAccessPointsArray);

                // 4. convert JSONObject to JSON to String
                json = jsonObject.toString();


                // 5. set json to StringEntity
                StringEntity se = new StringEntity(json);;

                // 6. set httpPost Entity
                httpPost.setEntity(se);

                // 7. Set some headers to inform server about the type of the content
                httpPost.setHeader("Accept", "application/json");
                httpPost.setHeader("Content-type", "application/json");

                // 8. Execute POST request to the given URL
                HttpResponse httpResponse = httpclient.execute(httpPost);

                // 9. receive response as inputStream
                inputStream = httpResponse.getEntity().getContent();

                // 10. convert inputstream to string
                if(inputStream != null)
                    result = convertInputStreamToString(inputStream);
                else
                    result = "Did not work";
            }
            catch (MalformedURLException e) {
            	 Log.e("YOUR_APP_LOG_TAG1", "", e);
            }
            catch (IOException e) {
            	 Log.e("YOUR_APP_LOG_TAG2", "", e);
            }
            catch (Exception e) {
            	 Log.e("YOUR_APP_LOG_TAG3", "", e);;
            }

            return result;
        }

        @Override
        protected void onPostExecute(String result) {
            Log.d("result", result);
            
        }
    

    private static String convertInputStreamToString(InputStream inputStream) throws IOException{
          BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));;
          String line = "";
          String result = "";
          while((line = bufferedReader.readLine()) != null)
              result += line;

          inputStream.close();
          return result;
    }   
	

但我仍然收到 403 错误,allowed Ip is not Configuration

感谢帮助/建议。谢谢

最佳答案

我认为这是我们自己。如果您在使用 Google 地理定位 Api 时遇到问题并收到 403 错误。那么你必须按照这些步骤。这很简单:)

  1. 减少API请求数为0
  2. 然后禁用 Geolocation API
  3. 创建一个新项目
  4. 然后启用 Google Geolocation Api
  5. 添加/增加API请求数
  6. 创建 Android API key
  7. 服务器 API key
  8. 使用它

一切顺利,现在您可以轻松使用 google geolocation api

希望对你有帮助 谢谢

关于java - Android Google Geolocation api 返回 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30526120/

相关文章:

java - JFrame 控制台扫描器

android - Retrofit 2 beta2 无法进行分段上传

google-api - Google 地理编码 API 安全性

android - RecyclerView 在下面的 View 中滑动,未检测到点击

geolocation - ionic 本地地理定位不适用于 Android

javascript - html 地理位置 : Unknown error acquiring position

java - 创建 JSONObject 时如何避免在字符串值周围加上引号

java - Java 中搜索方法的空指针异常

java - cassandra db 慢速连接

android - 如何使用 Python 执行 adb 命令?