Ich möchte Response Body verwenden, nachdem der Benutzer sich erfolgreich angemeldet hat, indem ich E-Mail und Passwort eingegeben habe. Ich habe versucht mit PufferReader, aber ich zeige NULL. HierJSON-Objekt nach Benutzer lesen Erfolgreich angemeldet
ist, was ich tue:
class PostData {
private String response = "", data, userId, dataParsed;
private int responseCode;
String ServerData(String path, JSONObject params) {
try {
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream outputStream = conn.getOutputStream();
BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
bufferWriter.write(String.valueOf(params)); //Sending email and Password
bufferWriter.flush();
bufferWriter.close();
outputStream.close();
responseCode = conn.getResponseCode();
System.out.print(responseCode);
if (responseCode == 200) { //now only when email and password are valid read response body
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String responseBody;
StringBuffer response = new StringBuffer();
while ((responseBody= bufferedReader.readLine()) != null) {
response.append(responseBody);
}
System.out.print("DATA CHECK: " + data); // it shows null here.
JSONObject root = new JSONObject(response.toString());
JSONObject jsonObject = root.getJSONObject("data");
for (int i = 0; i < jsonObject.length(); i++) {
JSONObject JO = (JSONObject) jsonObject.get(String.valueOf(i));
userId = (String) JO.get("userId");
}
dataParsed = dataParsed + userId;
} catch (Exception e) {
e.printStackTrace();
}
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
Integer passResCode() {
return responseCode;
}
String passUserId() {
return userId;
}
}
hier ist das Beispiel meiner json Antworttext:
{"data": {"id": "xxxx","ttl": 1209600,"created": "2017-09-20T06:38:31.568Z","userId": 85},"requestStatus":true}
Ich wollte nur userId aus dem Antworttext lesen. Ich arbeite an diesem von den letzten 2 Tagen, es wird große Hilfe sein, wenn jemand mir hilft :) danke.
haben Sie versucht, Ihren Code debuggen? Erhalten Sie irgendetwas in 'bufferedReader.readLine()'? was ist 'daten' übrigens? –
Daten enthalten den JSON-Antworttext. Ich habe versucht zu debuggen es zeigt null. – KhanStan99
Versuchen Sie, das Protokoll in Ihrer while-Schleife zu drucken, um festzustellen, ob Daten vorhanden sind. –