A
aychiquita
Neues Mitglied
- 0
Hallo allerseits,
seit einiger Zeit habe ich jetzt schon ein Problem, das ich nicht lösen kann.
Ich habe eine Methode getJSONObject (siehe unten), die - gegeben der URL wie in der Parameterliste - das angefragte JSON Objekt returnt. Ich verbinde mich dabei mit einer API, was aber nicht so wichtig ist, denn der Fehler wird nicht dort liegen (Ich habe es viele Male getestet, die API antwortet fehlerfrei).
Das Problem, das ich habe, ist das folgende:
Immer wenn ich die Methode das erste Mal benutze, funktioniert alles einwandfrei. Sogar innerhalb einer bestimmten Zeitspanne arbeitet es weiterhin fehlerfrei. Wenn ich also getJSONObject ein zweites / drittes / ... Mal aufrufe, funktioniert die Methode immer noch. ABER: Wenn ich z.B. eine Minute warte und dann getJSONObject ausführe, kann keine Verbindung mehr hergestellt werden. Über getResponseCode() bekomme ich "-1". Und noch seltsamer: Falls ich danach noch einmal getJSONObject ausführe, funktioniert es wieder.
Ich hoffe, ich habe das Problem gut genug beschrieben - Und hoffe natürlich, dass mir hier vllt. jemand helfen kann. Es würde mir sehr helfen!
Danke für Eure Zeit!
seit einiger Zeit habe ich jetzt schon ein Problem, das ich nicht lösen kann.
Ich habe eine Methode getJSONObject (siehe unten), die - gegeben der URL wie in der Parameterliste - das angefragte JSON Objekt returnt. Ich verbinde mich dabei mit einer API, was aber nicht so wichtig ist, denn der Fehler wird nicht dort liegen (Ich habe es viele Male getestet, die API antwortet fehlerfrei).
Das Problem, das ich habe, ist das folgende:
Immer wenn ich die Methode das erste Mal benutze, funktioniert alles einwandfrei. Sogar innerhalb einer bestimmten Zeitspanne arbeitet es weiterhin fehlerfrei. Wenn ich also getJSONObject ein zweites / drittes / ... Mal aufrufe, funktioniert die Methode immer noch. ABER: Wenn ich z.B. eine Minute warte und dann getJSONObject ausführe, kann keine Verbindung mehr hergestellt werden. Über getResponseCode() bekomme ich "-1". Und noch seltsamer: Falls ich danach noch einmal getJSONObject ausführe, funktioniert es wieder.
Ich hoffe, ich habe das Problem gut genug beschrieben - Und hoffe natürlich, dass mir hier vllt. jemand helfen kann. Es würde mir sehr helfen!
Danke für Eure Zeit!
Code:
public static JSONObject getJSONObject(String url)
{
try
{
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[] { new MyTrustManager() }, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new MyHostnameVerifier());
HttpsURLConnection httpsUrlConnection = (HttpsURLConnection) new URL(url).openConnection();
httpsUrlConnection.setRequestMethod("GET");
httpsUrlConnection.addRequestProperty(ApiData.getHeader1(), ApiData.getHeader1Value());
httpsUrlConnection.setDoOutput(true);
httpsUrlConnection.setDoInput(true);
httpsUrlConnection.connect();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpsUrlConnection.getInputStream()));
StringBuffer stringBuffer = new StringBuffer();
String readLine;
while((readLine = bufferedReader.readLine()) != null)
{
stringBuffer.append(readLine);
}
bufferedReader.close();
httpsUrlConnection.disconnect();
return new JSONObject(stringBuffer.toString());
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}