2012年01月28日

[WMECast](お知らせ)29日11:30より、プログラミング講座配信があります。

 先月、ご好評頂きました、株式会社垰井開発主催プログラミング講座が、1月29日午前11時半より開催されます。

 また、大人数視聴についての問題点の洗い出しなど次期WMEcastに生かしてくという狙いも御座いますので、是非奮ってご参加ください

 内容については、予告ページをご参照ください。
http://wmecast.net/user/jonosuke
posted by n-stream管理人 at 23:46| Comment(0) | WMECast | このブログの読者になる | 更新情報をチェックする

2011年09月25日

Apache Http Components clientでの文字化け対処

 どうせすぐ忘れるので、メモ書き。

 元々はCoreコンポーネントによる、サーバ実装のために探してきたライブラリだけど、一般的にはclientライブラリの方目的で使っている人の方が多いでしょう。
 ただし、一つ気を付けないといけない事があって、Exampleの最初の例をそのまま動かすと、出力が文字化けをするんだ。

 この、ResponseHandlerをDefaultHttpClient.execute()に渡して、最終的に指定した型のレスポンスボディを得る方法は、でけえええファイルを読み込みながら処理をしたい場合にかなり有効だったり。
 実はWMEのストリーミングを読み込みながら変換をし、ファイルに落とすなんて事も可能なんだけど、仕様の読み込みが甘くて、どう変換したらASFファイルに落とし込めるかさっぱり見当が付かん。

 で、それはどうでもいいとして、どう書けば文字化けをしないかと言うと、こんな具合でレスポンス処理をオーバーライドすればOK。
 ちょいと書き換えてやれば、バイナリを食う予定にも対処できたり。

HttpClient client = new DefaultHttpClient();
HttpGet getmethod = new HttpGet("どこかのURL");
ResponseHandler<String> handler = new ResponseHandler<String>() {
public Boolean handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
BufferedReader reader
= new BufferedReader( new InputStreamReader( arg0.getEntity().getContent(), "UTF-8"));
StringBuffer buffer = new StringBuffer();
while( true ) {
String line = reader.readLine();
if (line == null) break;
buffer.append(line);
buffer.append("\n");
}
return buffer.toString();
}
};
String response_body = client.execute(getmethod, handler);



 別に全部読み込んでから処理すればいいよ、といった場合は、ResponseHandlerを省略して、HttpResponseを貰ってくる方法があったり。


HttpClient client = new DefaultHttpClient();
HttpGet getmethod = new HttpGet("どこぞのURL");
HttpResponse response = client.execute(get);
BufferedReader reader
= new BufferedReader(
new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
/* 後は適当に処理 */



**追記
 BufferedReaderで読むのは、なんか冗長でやだー、て事で元はどんな処理をしているのか調べてみたら、EntityUtilsなんてものがあるそうな。
 てことで、BufferedReaderインスタンスの作成からテキストの出力までは、この一行で済む。
 元のBasicResponseHandlerでは、二つ目の文字コード指定の引数が無いので、化けるという次第。

String body = EntityUtils.toString(response, "UTF-8");
posted by n-stream管理人 at 16:15| Comment(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2011年09月10日

[WMECast](お知らせ)Peercast対応のテストを開始しました

 Peercast配信の掲載機能を実装しましたので、お知らせします。
 この機能は、まだテスト実装段階ですので、不具合がある可能性があります。
 お気付きの点がありましたら、よろしければ「サポート掲示板」までお知らせください。

 配信の掲載方法は、イエローページ設定に「wmecast.net」を指定し、ジャンルの先頭に「wmecast:」と指定するだけとなります。

 WMECastアカウントを利用した配信をするには、ジャンルに指定した「wmecast:」に続けて、「視聴・配信設定」の一番下にある、Peercast登録用のパスワードを付けてください。
 このパスワードは再生成ボタンで、何度でも作り直せます。
posted by n-stream管理人 at 23:47| Comment(0) | WMECast | このブログの読者になる | 更新情報をチェックする