Shoutcastサーバーから曲のタイトルを取得しようとしています。だから、私の考えは、Shoutcastサーバーの7.htmlページで少し正規表現を行うことでしたが、7.htmlページを受信するための単純なHttpGetリクエストを取得することはできません。私は何が間違っているのですか?
リンクからポート番号を削除すると、HttpGetは問題なく実行されますが、結果が得られません。
private class GetTrackInfo extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... Urls) {
String url = urls[0];
if(!url.contains("http://")) url = "http://" + url;
url = url + "/7.html";
HttpParams params = new BasicHttpParams();
HttpClient httpclient = new DefaultHttpClient(params);
HttpGet http = new HttpGet(url);
HttpResponse response = null;
try {
response = httpclient.execute(http);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
response.getEntity().writeTo(out);
} catch (IOException e) {
e.printStackTrace();
}
String res = out.toString();
return res;
}
@Override
protected void onPostExecute(String result) {
Log.i("GetTrack", "Track result: " + result);
String[] results = result.split(",");
String track = results[results.length-1];
fplayer.setStreamInfoTxt(track);
}
}
エラーとして、私は次のようになります。
01-29 23:28:10.461:W / System.err(962):org.Apache.http.client.ClientProtocolException 01-29 23:28:10.471:W / System.err(962):org.Apacheで。 http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:557)01-29 23:28:10.471:W / System.err(962):org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient) .Java:487)01-29 23:28:10.471:W / System.err(962):org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:465)01-29 23:28 :10.471:W / System.err(962):com.imsgroups.exyuradio.services.PlayerService $ GetTrackInfo.doInBackground(PlayerService.Java:257)01-29 23:28:10.471:W / System.err(962) :com.imsgroups.exyuradio.services.PlayerService $ GetTrackInfo.doInBackground(PlayerService.Java:1)01-29 23:28:10.481:W / System.err(962):Android.os.AsyncTask $ 2.call( AsyncTask.Java:185)01-29 23:28:10.481:W / System.err(962):Java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.Java:305)01-29 23:28:10.491:W / System.err(962):Java.util.concurrent.FutureTask.run(FutureTask.Java:137)01-29 23:28:10.491:W / System.err(962):Java.util.concurrent.ThreadPoolExecutor .runWorker(ThreadPoolExecutor.Java:1068)01-29 23:28:10.491:W / System.err(962):Java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.Java:561)01-29 23 :28:10.491:W / System.err(962):Java.lang.Thread.run(Thread.Java:1096)01-29 23:28:10.491:W / System.err(962):原因: org.Apache.http.ProtocolException:サーバーが有効なHTTP応答で応答できませんでした01-29 23:28:10.511:W / System.err(962):org.Apache.http.impl.conn.DefaultResponseParser.parseHeadで(DefaultResponseParser.Java:93)01-2922:28:10。511:W / System.err(962):org.Apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.Java:174)01-29 23:28:10.511:W / System.err(962): at org.Apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.Java:179)01-29 23:28:10.511:W / System.err(962):atorg.Apache.http.impl.conn.DefaultClientConnection。 receiveResponseHeader(DefaultClientConnection.Java:235)01-29 23:28:10.522:W / System.err(962):org.Apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.Java:259)01-29 23:28:10.522:W / System.err(962):org.Apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.Java:279)01-29 23:28:10.522:W / System.err(962 ):org.Apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.Java:121)01-29 23:28:10.522:W / System.err(962):org.Apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.Java:410)01-29 23:28:10.541: W / System.err(962):org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:555)