package com.socks.jiandan.net;
import com.android.volley.AuthFailureError;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.HttpHeaderParser;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
* 发表评论
*/
public class Request4PushComment extends Request<Boolean> {
private Response.Listener<Boolean> listener;
private HashMap<String, String> params;
public Request4PushComment(String url, HashMap<String, String> params, Response
.Listener<Boolean> listener, Response.ErrorListener errorListener) {
super(Method.POST, url, errorListener);
this.listener = listener;
this.params = params;
}
@Override
protected Response<Boolean> parseNetworkResponse(NetworkResponse response) {
try {
String resultStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
JSONObject resultObj = new JSONObject(resultStr);
int code = resultObj.optInt("code");
if (code == 0) {
return Response.success(true, HttpHeaderParser.parseCacheHeaders(response));
} else {
return Response.error(new VolleyError("错误码:" + code));
}
} catch (Exception e) {
e.printStackTrace();
return Response.error(new VolleyError(e));
}
}
/**
* 包装请求参数
*
* @param thread_id
* @return
*/
public static HashMap<String, String> getRequestParams(String thread_id, String parent_id,
String author_name, String author_email,
String message) {
HashMap<String, String> params = new HashMap<>();
params.put("thread_id", thread_id);
params.put("parent_id", parent_id);
params.put("author_name", author_name);
params.put("author_email", author_email);
params.put("message", message);
return params;
}
/**
* 包装无父评论的请求参数
*
* @param thread_id
* @param author_name
* @param author_email
* @param message
* @return
*/
public static HashMap<String, String> getRequestParamsNoParent(String thread_id,
String author_name, String author_email,
String message) {
HashMap<String, String> params = new HashMap<>();
params.put("thread_id", thread_id);
params.put("author_name", author_name);
params.put("author_email", author_email);
params.put("message", message);
return params;
}
@Override
protected void deliverResponse(Boolean response) {
listener.onResponse(response);
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
}