2017-05-05 3 views
0

aus irgendeinem Grund, wenn wir eine Anfrage an die google distance Matrix API senden wir erhalten eine Fehlermeldung, dass wir unsere tägliche Quote überschritten haben, dennoch haben wir nicht einmal 100 Anfrage wie möglich getan werden hier zu sehen:Java bekommen Anfrage Fehler mit Google Entfernung Matrix api

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

der Code die GET-Anforderung zu senden ist wie folgt:

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; 

    } 
} 

wie man sehen kann, haben wir eine Erhaltungs-Anforderung mit einer Reihe von Adressen in einem Json gespeichert schicken Datei.

Die Json-Datei kann hier gesehen werden: http://wservice.viabicing.cat/v2/stations

Jedoch denken wir, das Problem könnte auf die Länge der Anfrage bezogen werden, denn wenn wir es reduzieren Länge i gibt uns keine Probleme. Hier

ist ein resquest (ich kann nicht schreiben zwei Links zur Zeit, sorry):

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 

Wie Sie sehen können, für jede Adresse eine GET-Anforderung verwendet, ist nicht möglich, da es etwa ara 100 Adressen, gibt es eine Möglichkeit, die akzeptierte Länge einer Get-Anfrage zu erhöhen?

Wenn nicht, was ist die maximal zulässige Länge?

Antwort

0

Ich denke, das ist, weil wir Sonderzeichen in Spanien wie ´ oder ñ setzen.

+0

Bitte dies sollte ein Kommentar zu der Frage sein, und keine separate Antwort! – hd84335

Verwandte Themen