0
발리 사용자 지정 게시물 GSon 요청을 만들었지 만 전화를 걸 수 없습니다.발리 포스트 GSON 요청 문제
GSON POST 요청 :
public class GsonRequest<T> extends Request<T> {
private final Gson gson = new Gson();
private final Class<T> clazz;
private final Map<String, String> headers;
private final Map<String, String> params;
private final Response.Listener<T> listener;
/**
* Make a GET request and return a parsed object from JSON.
*
* @param url URL of the request to make
* @param clazz Relevant class object, for Gson's reflection
* @param headers Map of request headers
*/
public GsonRequest(String url, Class<T> clazz, Map<String, String> headers,
Response.Listener<T> listener, Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.clazz = clazz;
this.headers = headers;
this.listener = listener;
this.params = null;
}
/**
* Make a POST request and return a parsed object from JSON.
*
* @param url URL of the request to make
* @param clazz Relevant class object, for Gson's reflection
*/
public GsonRequest(int method, String url, Class<T> clazz, Map<String, String> params,
Response.Listener<T> listener, Response.ErrorListener errorListener) {
super(method, url, errorListener);
this.clazz = clazz;
this.params = params;
this.listener = listener;
this.headers = null;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers != null ? headers : super.getHeaders();
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
@Override
protected void deliverResponse(T response) {
listener.onResponse(response);
}
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
String json = new String(
response.data, HttpHeaderParser.parseCharset(response.headers));
return Response.success(
gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
}
** 응답 일반 모델 클래스 : **
public class BaseResponse<T> implements Serializable {
private boolean response;
private String message;
private String status;
private String userStatus;
private String token;
private T data;
public boolean isResponse() {
return response;
}
public void setResponse(boolean response) {
this.response = response;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getStatus() {
return status;
}
public String getUserStatus() {
return userStatus;
}
public String getToken() {
return token;
}
}
데이터 모델 클래스 : 아래
public class OTPCode implements Serializable {
private String code;
@SerializedName("mobile")
private String phone;
@SerializedName("id")
private String userId;
private String name;
private String email;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
전화입니다 다시 보여주는 오류 :
GsonRequest<BaseResponse<OTPCode>> baseResponseGsonRequest = new GsonRequest<BaseResponse<OTPCode>>
(Request.Method.POST,url,BaseResponse<OTPCode>.class, params, new Response.Listener<BaseResponse<OTPCode>>() {
@Override
public void onResponse(BaseResponse<OTPCode> response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
나는 GsonRequest에 BaseResponse.class을 구문 분석하고 있지만 나에게 오류를 보여주는. 나는 실수를 저지를 수도있다. 도와주세요!! BaseResponse가 제네릭 클래스이기 때문에