package com.ntp.network;
import com.ntp.network.okhttp.ObjectCallbackHandler;
import com.ntp.util.ConstantValue;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
/**
* 网络请求
* Created by lishuangxiang on 2015/12/13.
*/
public class HttpRequestHelper {
private OkHttpClient mOkHttpClient;
private static HttpRequestHelper mHttpRequestHelper;
private HttpRequestHelper(){
mOkHttpClient = new OkHttpClient();
}
public static HttpRequestHelper getInstance(){
if (mHttpRequestHelper==null){
synchronized(HttpRequestHelper.class){
if (mHttpRequestHelper == null)
{
mHttpRequestHelper = new HttpRequestHelper();
}
}
}
return mHttpRequestHelper;
}
/**
* 获取课程列表
* @param page 获取第几页
* @param pageSize 每页大小
* @param callback
*/
public void getCourseList(int page,int pageSize,ObjectCallbackHandler callback){
String url= ConstantValue.PATH_COURSE_LIST;
String key[]=new String[]{"page","pageSize"};
String value[]=new String[]{String.valueOf(page),String.valueOf(pageSize)};
post(url,key,value,callback);
}
/**
* 获取我的课程
* @param username 用户名
* @param callback
*/
public void getMyCourse(String username,ObjectCallbackHandler callback){
String url= ConstantValue.PATH_MY_COURSE;
String key[]=new String[]{"username"};
String value[]=new String[]{username};
post(url,key,value,callback);
}
/**
* 获取评论消息列表
* @param username
* @param currentPage 当前页
* @param pageSize
* @param objectCallbackHandler
*/
public void getCommentNoticeList(String username,String currentPage,String pageSize,ObjectCallbackHandler objectCallbackHandler){
String url= ConstantValue.PATH_FORUM_COMMENT;
String key[]=new String[]{"username","page","pageSize"};
String value[]=new String[]{username,currentPage,pageSize};
post(url,key,value, objectCallbackHandler);
}
/**
* 获取作业列表
* @param username
* @param currentPage 当前页
* @param pageSize
* @param objectCallbackHandler
*/
public void getHomeworkList(String username,String currentPage,String pageSize,ObjectCallbackHandler objectCallbackHandler){
String url= ConstantValue.PATH_MY_HOMEWORK;
String key[]=new String[]{"username","page","pageSize"};
String value[]=new String[]{username,currentPage,pageSize};
post(url,key,value, objectCallbackHandler);
}
/**
* 获取课程问题列表
* @param page 获取第几页
* @param pageSize 每页大小
* @param code 课程代码
* @param callback
*/
public void getForumList(int page,int pageSize,String code,ObjectCallbackHandler callback){
String url= ConstantValue.PATH_COURSE_FORUM;
String key[]=new String[]{"page","pageSize","code"};
String value[]=new String[]{String.valueOf(page),String.valueOf(pageSize),code};
post(url,key,value,callback);
}
/**
* 获取课程问题列表
* @param page 获取第几页
* @param pageSize 每页大小
* @param forumID 问题ID
* @param callback
*/
public void getForumReplyList(int page,int pageSize,String forumID,ObjectCallbackHandler callback){
String url= ConstantValue.PATH_COURSE_FORUM_ALL;
String key[]=new String[]{"page","pageSize","forumId"};
String value[]=new String[]{String.valueOf(page),String.valueOf(pageSize),forumID};
post(url,key,value,callback);
}
/**
* 回复课程问题
* @param name
* @param content
* @param forumId
* @param callback
*/
public void reply(String name,String content,String forumId ,Callback callback){
String url= ConstantValue.PATH_COURSE_FORUM_REPLY;
String key[]=new String[]{"name","comment","forumId"};
String value[]=new String[]{name,content,forumId};
post(url,key,value,callback);
}
/**
* 获取课程类型
* @param callback
*/
public void getCourseTypeList(ObjectCallbackHandler callback){
String url=ConstantValue.PATH_COURSE_TYPE_LIST;
post(url,new String[]{},new String[]{},callback);
}
/**
* 获取课程简介
* @param callback
*/
public void getCourseOverview(String code,ObjectCallbackHandler callback){
String url=ConstantValue.PATH_COURSE_DETAIL;
post(url,new String[]{"code"},new String[]{code},callback);
}
/**
* 获取课程课件
* @param callback
*/
public void getCourseware(String code,ObjectCallbackHandler callback){
String url=ConstantValue.PATH_COURSE_WARE;
post(url,new String[]{"code"},new String[]{code},callback);
}
/**
* 获取课程视频
* @param callback
*/
public void getCourseVideo(String code,ObjectCallbackHandler callback){
String url=ConstantValue.PATH_COURSE_VIDEO;
post(url,new String[]{"code"},new String[]{code},callback);
}
/**
* post异步网络请求
* @param url
* @param key
* @param value
* @param callback
*/
private void post(String url,String key[],String value[],Callback callback){
FormEncodingBuilder builder = new FormEncodingBuilder();
for (int i=0;i<key.length;i++){
builder.add(key[i],value[i]);
}
Request request = new Request.Builder()
.url(url)
.post(builder.build())
.build();
mOkHttpClient.newCall(request).enqueue(callback);
}
}