I want use Travel Api in my Android app
First Test Harness Demo API key (prtl6749387986743898559646983194) returns 200, success Creating the Session and Polling the Session
However, while using the Dashboard private API key, it return 429 Too many request
Is there anything I need to do for using private API key?
my code:
public void run(String u) {
try {
// SystemClock.sleep(500);
url = new URL(u);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(50 * 1000);
connection.setReadTimeout(50 * 1000);
connection.setRequestProperty("Cache-Control", "no-store");
connection.setRequestProperty("Cache-Control", "no-cache");
// connection.setRequestProperty("If-None-Match", "no-store");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Accept", "application/xml");
connection.setRequestProperty("charset", "utf-8");
/* connection.setUseCaches(true);
connection.setDoOutput(true);*/
Log.v("Response", " parameter = " + Parameters);
byte[] postData = Parameters.getBytes(StandardCharsets.UTF_8);
int postDataLength = postData.length;
connection.setRequestProperty("Content-Length", Integer.toString(postDataLength));
OutputStream os = connection.getOutputStream();
os.write(postData);
os.flush();
// SystemClock.sleep(500);
int responseCode = connection.getResponseCode();
Log.v("Response", "Sending 'POST' request to URL : " + url);
Log.v("Response", "Post parameters : " + Parameters);
Log.v("Response", "Response Code : " + responseCode);
Log.v("Response", "Message : " + connection.getResponseMessage());
String result = connection.getHeaderField("Location");
SettionKey = connection.getHeaderField("Location").substring(result.indexOf("v1.0/") + 5, result.length());
Log.v("Response", "SessionKey = " + SettionKey);
connection.disconnect();
// SystemClock.sleep(500);
} catch (IOException e) {
Log.v("Response", "Post Dead");
}
}
public void get(String url) {
try {
Log.v("Response", "get");
String url1 = url + "/" + SettionKey + "/?apiKey=" + apiKey;
URL url2 = new URL(url1);
HttpURLConnection connection = (HttpURLConnection) url2.openConnection();
Log.v("Response", "url = " + url1);
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded.");
connection.setRequestProperty("Accept", "application/xml");
connection.setRequestProperty("Cache-Control", "no-cache");
connection.setUseCaches(true);
connection.setDefaultUseCaches(true);
connection.setDoInput(true);
int responseCode = connection.getResponseCode();
Log.v("Response", " " + connection.getHeaderFields());
Log.v("Response", "code = " + responseCode);
Log.v("Response", connection.getResponseMessage());
code = responseCode + connection.getResponseMessage();
Flight.put("code", code);
InputStream is = null;
try {
is = new BufferedInputStream(connection.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(is));
setlist(br);
//Log.v("Response","result = "+inputLine.toString());
} catch (IOException e) {
Log.v("Response", "read Dead.. ");
}
connection.disconnect();
} catch (IOException e) {
Log.v("Response", "GET Dead ");
}
}
I've got same problems. Then I find out that:
Flights Live Pricing service is currently suspended.
You can check at here
My solution is using demo apiKey for dev, and waiting for their service re-launch.