2013-08-19 4 views
1

У меня есть приложение для Android, которое подключается к размещенному db для извлечения данных.Как получить доступ к файлу PHP, размещенному на сервере?

При тестировании на локальном хосте он работал отлично.

Я переместил db на размещенный сервер, пару дней назад и, пытаясь запустить приложение, он бросает ошибку при извлечении данных из db.

ОШИБКА:

08-19 06:57:28.579: E/JSON Parser(32067): Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

<!DOCTYPE не является значением в любой из таблиц в базе данных (я проверил и дважды проверил). Вместо этого <!DOCTYPE является первой строкой в ​​файле index.html, который также размещен на том же сервере.

Адрес, используемый приложением: http://ipaddress/filename.php.

При чтении документации, предоставленной веб-хостинговой компанией, я помню, что читал что-то, что говорит, что «сервер рассматривает index.html как домашнюю страницу или страницу по умолчанию для этого каталога». В основном, когда я печатаю «www.someaddress.com» или его IP, он возвращает index.html. Я предполагаю, что когда приложение связывается с IP-адресом, указанным в URL-адресе, возвращается файл index.html (возможно ли это?).

Вопрос в том, как мне обойти эту проблему? Кто-нибудь сталкивался с той же проблемой?

Заранее спасибо.

+3

Скорее всего, вы не запрашиваете правильный скрипт. Распечатайте возвращенные данные на устройстве Android для просмотра возвращенных данных. – SteAp

ответ

2

Я понял, что проблема. Моя догадка была правильной: файл index.html возвращался, и парсер json пытался преобразовать его в jsonobject и, следовательно, ошибку.

Но это происходит из-за других проблем, с которыми я должен был проверить:

андроид приложение использует http://ipaddress/filename.php для извлечения данных с сервера. Когда я попытался использовать тот же URL-адрес в браузере, он вернул 403 forbidden. Я заменил url на www.sitename.com/filename.php, и он вернул ответ json, как и ожидалось.

После замены всех URL-адресов в приложении на соответствие www.sitename.com/filename.php вместо http://ipaddress/filename.php, он начал правильно получать данные.

По какой-то причине, когда я использовал http://sitename.com/filename.php в приложении для Android, он также возвращал index.html. Мне пришлось заменить все http:// на www., чтобы заставить его работать.

Спасибо SteAp за помощь!

Смежные вопросы