2010-08-18 2 views
2

Я использую Apache HttpClient через httpclient-fluent-builder, чтобы загрузить страницу http.Не удается загрузить с HttpClient с другим портом сервера

Это код:

... 
try { 
    response = Http.get("http://fr3.ah.fm:9000/played.html") 
     .use(client)    // use this HttpClient (required) 
     .charset("windows-1252")  // set the encoding... (optional) 
     .asString(); 
} catch (IOException e) { 
    Log.d(TAG, "Error: "+e.toString()); 
    e.printStackTrace(); 
} 
Log.i(TAG, ""+ response); 
... 

Проблема заключается в том, что я получаю org.apache.http.client.ClientProtocolException

Это что-то с хозяином: порт/URL, обусловленно это работает с URL'ы, без порты. Я также получаю эту же ошибку с другим классом Httphelper, чем с быстрым построением. Брандмауэр выключен.

Logcat: http://pastebin.com/yMMvvdQ3

+0

Если вы нажмете http://fr3.ah.fm:9000/played.html в своем браузере, это даст вам что-то действительное? –

+0

Да, и я попробовал это как из своего обычного браузера, так и из браузера Android внутри эмулятора. – droidgren

ответ

2

Найдены, что это было с помощью этой post, что это был Shoutcast сервер ...

Вы должны иметь возможность подключиться к 8000 с вебом браузера и получить страницу статуса DNAS . Если, с другой стороны, вы подключаетесь к этому порту с медиа-проигрывателем , он вернет прямой поток MP3 . (К сожалению, в невероятно boneheaded куска дизайна, пути SHOUTcast решает, чтобы реагировать с является вынюхиванию вашего заголовка User-Agent для чего-то начиная с Mozilla, так что если вы использовать альтернативный браузер или блокирование вашего UA вы не сможете получить статус, и если поток-х вниз, вы не можете просто получить ничего.)

сводили меня с ума .. Но это легко исправить. Я просто добавил.

.header("User-Agent", "UserAgent: Mozilla/5.0") 
+0

Вы не представляете, сколько усилий вы только что спасли меня. СПАСИБО! :) –

0

попытка установить Ури с помощью HttpHost и использовать его в HttpClient.execute().

Я не пробовал ..

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