Я пытаюсь получить данные с помощью php-скрипта. Я использую для этого метод HttpURLConnection и GET. Самое странное здесь, что проблема возникает только для Android. Я просто попробовал это на eclipse для java, и он отлично работал. Он также работал, когда я был на моем локальном хосте. Нет, что я пытаюсь получить данные с онлайн-сервера, он больше не работает, ни на эмуляторе, ни на устройстве.HttpURLConnection android contentLength = -1
Вот функция:
public static JSONArray getData(String scriptName) {
int responseCode = -1;
JSONArray jsr = null;
try {
URL feedURL = new URL(BASE_URL + scriptName + ".php");
HttpURLConnection connection = (HttpURLConnection) feedURL.openConnection();
connection.setReadTimeout(10000/* milliseconds */);
connection.setRequestMethod("GET");
connection.setDoInput(true);
connection.connect();
responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
Reader reader = new InputStreamReader(inputStream);
int contentLength = connection.getContentLength();
char[] charArray = new char[contentLength];
reader.read(charArray);
String responseData = new String(charArray);
jsr = new JSONArray(responseData);
}
} catch (Exception e) {
Log.e(UnBunkerApplication.DEBUG_TAG, "Error : " + e.getMessage());
}
return jsr;
}
Сгенерированный ошибка в том, что connection.getContentLength() возвращает -1. ... Таким образом, линия «новый символ [ContentLength] поймана сточный блока Константа base_url является онлайн URL папка, содержащая скрипты Когда он был Пойтинга на локальный, все было хорошо
Вот вызов метода:
public static void fillUsersListFromDataBase() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
JSONArray dataJSON = DataBase.getData("getAllUsers");
User.fillUsers(dataJSON);
}
});
t.start();
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
А вот разрешения:?
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
Любые мысли Спасибо
Можете ли вы поймать ошибку и зарегистрировать ее, чтобы вы могли проверить ошибку создания соединения, если таковая имеется? – icbytes
Ну, ошибки подключения не видно. ResponseCode == 200. Вот журнал: 1542-1564/be.simongenin.unbunker E/UnBunkerDebug: Ошибка: -1. –