for some reason when we send a get request to the google distance matrix api we get an error saying we have exceeded our daily quota, nonetheless we haven't done even 100 request as can be seen here:
https://i.sstatic.net/B94c1.png
the code to send the get request is as follows:
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®ion=es&key=AIzaSyBc2N_mjY8w3cDiqQcra4KjF_Gm4-0ZLUI");
return distancies;
}
}
As can be seen, we send a get request using a number of adresses stored in a Json file.
The Json file can be seen here: http://wservice.viabicing.cat/v2/stations
However, we think the issue might be related to the request's lenght, because when we reduce it's lenght i gives us no trouble.
Here is a resquest (I can't post two links at the moment, 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®ion=es&key=AIzaSyBc2N_mjY8w3cDiqQcra4KjF_Gm4-0ZLUI
As you can see, using a get request for each adress isn't feasible as there ara approximately 100 adresses, is there any way to increase the accepted lenght of a get request?
If not, what's the maximum allowed lenght?
I think that is because we put special character in spain like ´
or ñ
.