package com.anarchy.classifyview.sample.demonstrate.logic;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* <p/>
* Date: 16/6/12 11:37
* Author: rsshinide38@163.com
* <p/>
*/
public class NetManager {
private static final String BASE_URL = "http://www.tngou.net/api/book";
private static final int SUCCESS = 1;
private static final int FAILURE = 0;
private String get(String path) throws Exception {
String result = "";
StringBuilder sb = new StringBuilder();
URL url = new URL(BASE_URL + path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
if (connection.getResponseCode() == 200) {
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String strRead;
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
reader.close();
result = sb.toString();
}
return result;
}
public String getClassify() throws Exception {
return get("/classify");
}
public String getList(String page, String rows, String id) throws Exception {
Uri uri = Uri.parse("/list");
Uri.Builder builder = uri.buildUpon();
if(!TextUtils.isEmpty(page)) {
builder.appendQueryParameter("page", page);
}
if(!TextUtils.isEmpty(rows)) {
builder.appendQueryParameter("rows", rows);
}
if(!TextUtils.isEmpty(id)) {
builder.appendQueryParameter("id", id);
}
uri = builder.build();
return get(uri.toString());
}
public String getDetail(String id) throws Exception {
Uri uri = Uri.parse("/show");
uri = uri.buildUpon().appendQueryParameter("id", id).build();
return get(uri.toString());
}
public void getBookList(final BookListener bookListener) {
final Handler handler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg) {
int state = msg.what;
if(state == SUCCESS){
bookListener.onSuccess((String) msg.obj);
}else {
bookListener.onFailure((Exception) msg.obj);
}
}
};
new Thread(new Runnable() {
@Override
public void run() {
try {
String result = getList(null,40+"",null);
Message message = Message.obtain();
message.what = SUCCESS;
message.obj = result;
handler.sendMessage(message);
} catch (Exception e) {
Message message = Message.obtain();
message.what = FAILURE;
message.obj = e;
handler.sendMessage(message);
}
}
}).start();
}
}