2012-05-11 6 views
0

Я использую HttpGet для получения содержимого некоторых изображений. Он работал хорошо, но теперь она дает мне ошибки с новым сервером я использую, который возвращает изображения на форме:Java Android, ошибка HttpGet - имя хоста может не быть нулевым

https://amx-sfs.qpass.com/d/da/207b3f6f-4fda-4faf-b7ae-a186530e1245

Ошибка Имя хоста не может быть пустым

I были исследованы, и кажется, что ошибка распространена, когда символы подчеркивания появляются в URL-адресе, однако мой URL-адрес содержит только дефис, который, я думаю, принят URI. Во всяком случае я также попытался с помощью следующих действий, чтобы избежать URL без успеха:

HttpGet mHttpGet = new HttpGet(new URI(null,item.getImageUrl(),null)); 

Что еще может быть причиной проблемы и как я могу решить эту проблему?

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

EDIT

я впервые попробовал непосредственно с Url использованием

new HttpGet(item.getImageUrl()) 

Затем я попытался с 4 аргументах:

HttpGet mHttpGet = new HttpGet(new URI("https","amx-sfs.qpass.com",item.getImageUrl().substring(25),null)); 

С тот же результат, даже если я отлаживаю HttpG et Object, и наблюдайте за объектом URI, который он имеет, свойство хоста выглядит ok (amx-sfs.qpass.com), но я все равно получаю то же исключение.

ответ

0

Ну не было Java или проблема Android, это не приводит, что сервер изменяет запрос, когда речь идет от устройства ...

0

Вы кодировали URI? Например, удалите пробелы или другие специальные символы, которые сломают материал? Попробуйте android.net.Uri.encode (String s)

HttpGet mHttpGet = новый HttpGet (новый URI (нуль, android.net.Uri.encode (item.getImageUrl()), нуль));

Лучший способ отладить это, чтобы всегда печатать URL-адрес и анализировать те, которые дают ошибку.

+0

URL-адрес, который я опубликовал, является тем, который дает ошибку, при кодировании он дает ту же ошибку. – htafoya

0

Я думаю, вы используете неправильный конструктор. Три аргумента URI конструктор имеет эту подпись:

public URI(String scheme, String ssp, String fragment) 

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

+0

Ну, я сначала использовал конструктор одного аргумента без успеха, и я попробовал тогда 3 arg и 4 arg с тем же результатом. См. Раздел «Изменить». – htafoya

-1

Пожалуйста, попробуйте имя хоста без использования дефиса «-» или знак подчеркивания " _ ", посмотрите, работает ли он.