Skip to content

Instantly share code, notes, and snippets.

@HaiTo
Created February 8, 2014 14:05
Show Gist options
  • Save HaiTo/8884244 to your computer and use it in GitHub Desktop.
Save HaiTo/8884244 to your computer and use it in GitHub Desktop.
58行目でエラー。さて、また洗おう。
public class AttachServer extends AsyncTask<String, Void, JSONArray> {
// Builder configuration
// Uri.Builderを使うとエンコードもやってくれるみたい
// Field
private Uri.Builder builder;
Context context;
// Constructor
public AttachServer(Context context){
this.context = context;
this.builder = new Uri.Builder();
this.builder.scheme("http");
}
@Override
protected JSONArray doInBackground(String... strings) {
return this.ls(strings[0]);
}
//
public JSONArray ls(String address){
// Builder configuration
// Uri.Builderを使うとエンコードもやってくれるみたい
//this.builder.encodedAuthority(address); // 0.0.0.0:4567
this.builder.encodedAuthority(address);
this.builder.path("/ls");
// 結果の格納
String result = "";
HttpGet request = new HttpGet(this.builder.build().toString());
// HttpClientインタフェースではなくて、実クラスのDefaultHttpClientを使う。
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
result = httpClient.execute(request, new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
// response.getStatusLine().getStatusCode()でレスポンスコードを判定する。
// 正常に通信できた場合、HttpStatus.SC_OK(HTTP 200)となる。
switch (response.getStatusLine().getStatusCode()) {
case HttpStatus.SC_OK:
// レスポンスデータを文字列として取得する。
// byte[]として読み出したいときはEntityUtils.toByteArray()を使う。
return EntityUtils.toString(response.getEntity(), "UTF-8");
case HttpStatus.SC_NOT_FOUND:
throw new RuntimeException("データないよ!"); //FIXME
default:
throw new RuntimeException("なんか通信エラーでた"); //FIXME
}
}
});
// logcatにレスポンスを表示
Log.d("test", result);
} catch (ClientProtocolException e) {
throw new RuntimeException(e); //FIXME
} catch (IOException e) {
throw new RuntimeException(e); //FIXME
} finally {
// ここではfinallyでshutdown()しているが、HttpClientを使い回す場合は、
// 適切なところで行うこと。当然だがshutdown()したインスタンスは通信できなくなる。
httpClient.getConnectionManager().shutdown();
}
// nonParseStrings にJsonが入ってるはずなのでParse
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(result);
} catch(Exception e){
Log.d("EX:",e.toString());
//jsonArray = new JSONArray();
}
return jsonArray;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment