2017-05-05 76 views
0

由于某种原因,当我们发送获取请求到谷歌距离矩阵api时,我们得到一个错误,说我们已经超出了我们的每日配额,但是我们还没有完成100个请求在这里看到:Java获取请求错误使用谷歌距离矩阵api

https://i.stack.imgur.com/B94c1.png

代码发送GET请求如下:

public class JsonRead { 

    // Coverteix tot el contingut del BufferedReader en una String per per el seu posterior tractament 
    private String readAll(Reader rd) throws IOException { 

     StringBuilder sb = new StringBuilder(); 
     int cp; 

     while ((cp = rd.read()) != -1) { 

      sb.append((char) cp); 

     } 
     return sb.toString(); 
    } 

    //Per alguna rao, depen de quines adreçes disparen OVER_QUERY_LIMIT 
    // Agafa una String que conte la direcció, fa una GET Request i retorna el contingut en format JsonObject 
    public JsonObject readJsonFromUrl(String url) throws IOException { 

     System.out.println(url); 
     InputStream is = new URL(url).openStream(); 

     try { 

      JsonParser par = new JsonParser(); 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 

      String jsonText = readAll(rd); 

      JsonObject json = (JsonObject) par.parse(jsonText); 
      return json; 

     } finally { 
      is.close(); 
     } 
    } 

    public JsonObject getDistancies (int inici, int fi, String adress, JsonArray bicing) throws IOException{ 

     String array_adreces = ""; 
     JsonRead jr = new JsonRead(); 

     for (int i = inici; i <= fi ; i++){ 

      JsonObject aux = bicing.get(i).getAsJsonObject(); 

      if (aux.get("streetName").getAsString().contains("/")){ 

       array_adreces += aux.get("streetName").getAsString() + ",Barcelona" + "|"; 
      } 
      else { 

       array_adreces += aux.get("streetName").getAsString() + " " + aux.get("streetNumber").getAsString() + ",Barcelona" + "|"; 

      } 

      array_adreces = array_adreces.replaceAll(" ", "+"); 

     } 

     // Fem una web call que ens retorna les distancies de totes les estacions a l'adreça que l'usuari dona 
     JsonObject distancies = jr.readJsonFromUrl("https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + array_adreces +"&destinations=" + adress + "&mode=bicycling&language=es-ES&region=es&key=AIzaSyBc2N_mjY8w3cDiqQcra4KjF_Gm4-0ZLUI"); 
     return distancies; 

    } 
} 

可以看出,我们发送使用存储在一个JSON一些不会忽略的GET请求文件。

JSON文件可以在这里看到:http://wservice.viabicing.cat/v2/stations

不过,我们认为,该问题可能与请求的lenght,因为当我们降低它的lenght我给我们带来任何麻烦。

这里是一个resquest(我不能发布此刻的两个环节,不好意思):

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Gran+Via+Corts+Catalanes+760,Barcelona|Roger+de+Flor/+Gran+Vía,Barcelona|Ali+Bei+44,Barcelona|Ribes+13,Barcelona|Pg+Lluís+Companys+11,Barcelona|Pg+Lluís+Companys+18,Barcelona|Pg+Lluís+Companys+1,Barcelona|Pg+Lluís+Companys+2,Barcelona|Marquès+de+l'Argentera+17,Barcelona|Carrer+Comerç+27,Barcelona|Trelawny+2,Barcelona|Pg+Marítim+Barceloneta+23,Barcelona|Avinguda+Litoral+16,Barcelona|Avinguda+del+Marques+Argentera+19,Barcelona|Girona+74,Barcelona|Av.+Meridiana+47,Barcelona|Av.+Meridiana+47,Barcelona|Rosselló+412,Barcelona|Rosselló+354,Barcelona|Indústria+157,Barcelona|Sant+Antoni+Maria+Claret+214,Barcelona|Sardenya+296,Barcelona|Bruc+45,Barcelona|Marina+185,Barcelona|Bruc+102,Barcelona|Dos+Maig+230,Barcelona|Provença+322,Barcelona|Marina+311,Barcelona|Provença+388,Barcelona|Diagonal+231,Barcelona|Plaça+del+Mar+72,Barcelona|Plaça+del+Mar+1,Barcelona|Baluart+58,Barcelona|Sant+Pere+Més+Alt+4,Barcelona|Sant+Ramon+de+Penyafort+1,Barcelona|Catedral+6,Barcelona|Pl.+Antonio+López+,Barcelona|Pl.+Pau+Vila+,Barcelona|Pl.+Pau+Vila+,Barcelona|Doctor+Aiguader+2,Barcelona|Pl.+Poeta+Boscà/Atlàntida,Barcelona|Ciutat+de+Granada+168,Barcelona|Av+Meridiana+80,Barcelona|Av+Meridiana+66,Barcelona|Marina++65,Barcelona|Ramon+trias+Fargas+19,Barcelona|Ramon+Trias+Fargas+,Barcelona|Meridiana+40,Barcelona|Rosa+Sensat+en+front+20,Barcelona|Av.+Paral.lel+54,Barcelona|Pl.+Vicenç+Martorell+,Barcelona|Pl.+Carles+Pi+i+Sunyer+,Barcelona|Sant+Oleguer+2,Barcelona|La+Rambla+80,Barcelona|Portal+de+Santa+Madrona+2,Barcelona|La+Rambla+2,Barcelona|Plaça+dels+Àngels+1,Barcelona|Plaça+dels+Àngels+2,Barcelona|Rambla+Catalunya++47,Barcelona|Rambla+Catalunya+42,Barcelona|Pl.+Catalunya++5,Barcelona|Pl.+Catalunya+7,Barcelona|Pl.+Catalunya+,Barcelona|Pl.+Catalunya+,Barcelona|Gran+Via+609,Barcelona|Rocafort+214,Barcelona|Rambla+Catalunya+133,Barcelona|Avda.+Litoral+,Barcelona|Villarroel+2,Barcelona|Floridablanca++145,Barcelona|Provença+215,Barcelona|Enric+Granados+99,Barcelona|Josep+Tarradellas+129,Barcelona|Josep+Tarradellas+58,Barcelona|Còrsega+216,Barcelona|Pl.+Universitat+,Barcelona|Pl.+Universitat+,Barcelona|Enric+Granados+35,Barcelona|Vilamarí+davant+61,Barcelona|Rocafort+72,Barcelona|Comte+Borrell+177,Barcelona|Diputació+152,Barcelona|Paral·lel+146,Barcelona|Viladomat+2,Barcelona|Mallorca+41,Barcelona|Londres+101,Barcelona|Rosselló+101,Barcelona|Rosselló+108,Barcelona|Comte+Borrell+119,Barcelona|Provença+241,Barcelona|Gran+Via+375,Barcelona|Gran+Via+375,Barcelona|Tarragona+103,Barcelona|Gran+Via+361,Barcelona|Tarragona+141,Barcelona|Viriat+45,Barcelona|Viriat+53,Barcelona|Tarragona+159,Barcelona|Av.+Diagonal+602,Barcelona|Av.+Diagonal+612,Barcelona|&destinations=Via+Augusta,+209,+08021+Barcelona,+Spain&mode=bicycling&language=es-ES&region=es&key=AIzaSyBc2N_mjY8w3cDiqQcra4KjF_Gm4-0ZLUI 

正如你所看到的,使用每个ADRESS GET请求,因为ARA大约是不可行100个地址,有什么方法可以提高接受请求的接受长度吗?

如果不是,允许的最大长度是多少?

回答

0

我认为这是因为我们把西班牙的特殊字符如´ñ

+0

请这应该是一个问题的意见,而不是一个单独的答案! – hd84335