Я пытаюсь отправить запрос на веб-сайт, чтобы получить от него некоторые данные.Тем не менее, ответом являются символы мусора, такие как:
Ì 3ú¢¸<N¤@H±ü>§#Fe®¡+K·fÐcıaOqâò;'Êù!°â<rº\¼YDóß1K`òúüb¨ÑTcíÆ
Это происходит только для репо с данными в нем, и ошибки также работают нормально.Предполагается, что ответ должен выглядеть следующим образом (из запроса браузера): {"d":[{"__type":"CalendarTransport:http:...","activityId":2662,"activityImportIdentifier":null,"activityType":1,"allDay":false,"attendanceMode":1,....
Вот мой код
try
{
HttpsURLConnection httpsURLConnection;
httpsURLConnection = (HttpsURLConnection) new URL("https", redacted, redacted).openConnection();
try
{
httpsURLConnection.setRequestMethod("POST");
}
catch (Exception e)
{
Log.d(TAG, "doInBackground: oh no (3) it's a " + e.toString());
}
httpsURLConnection.setRequestProperty("Accept-Charset", "*/*");
httpsURLConnection.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
httpsURLConnection.setRequestProperty("Connection", "keep-alive");
httpsURLConnection.setRequestProperty("Content-Type", "application/json");
httpsURLConnection.setRequestProperty("Cookie", new DomainCookies(redacted).toRequestHeader());
httpsURLConnection.setDoOutput(true);
httpsURLConnection.setDoInput(true);
OutputStream os = httpsURLConnection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
osw.write(redacted);
osw.flush();
osw.close();
os.close();
StringBuilder mssg = new StringBuilder();
DataInputStream inputStream;
int status = httpsURLConnection.getResponseCode();
if (status != HttpsURLConnection.HTTP_OK)
{
inputStream = new DataInputStream(httpsURLConnection.getErrorStream());
Log.d(TAG, "doInBackground: HTTP error");
}
else
{
inputStream = new DataInputStream(httpsURLConnection.getInputStream());
Log.d(TAG, "doInBackground: HTTP OK");
}
try
{
for(int c = inputStream.read(); inputStream.available() != 0; c = inputStream.read())
{
mssg.append((char)c);
}
Log.d(TAG, "doInBackground: " + mssg);
}
catch (Exception e)
{
Log.d(TAG, "doInBackground: oh no (1) it's a " + e.toString());
}
}
catch (MalformedURLException e)
{
Log.d(TAG, "onCreate: Oh no it's a " + e.toString());
}
catch (Exception e)
{
Log.d(TAG, "doInBackground: Oh no it's a " + e.toString());
}
Браузер может получить ответ нормально, сделать это должно быть что-то яделаю (или андроид, но сомневаюсь)