volley 패키지 사용
volley 요청 은 대기 열 을 기반 으로 하기 때문에 어떤 요청 에 도 요청 대기 열 을 만들어 야 합 니 다. 대기 열 에 추가 하 기 를 요청 하 는 것 입 니 다.volley 초기 화 는 보통 activity 로 딩 이나 fragment 를 만 들 때 초기 화 작업 을 합 니 다.
RequestQueue requestQueue = Volley.newRequestQueue(this);
1. String 형식의 요청
String 형식의 요청 은 간단 합 니 다. 간단 한 응용 프로그램 을 말씀 드 리 겠 습 니 다.
1. get 요청
private void requestTest() {
// get
StringRequest stringRequest = new StringRequest(Request.Method.GET, "https://www.baidu.com/", new Listener() {
@Override
public void onResponse(String response) {
//response
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(stringRequest)
}
2, post 요청
private void requestTest() {
StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://192.168.5.110:8080/list", new Listener() {
@Override
public void onResponse(String response) {
//response
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
// getParams
@Override
protected Map getParams() throws AuthFailureError {
HashMap map = new HashMap();
map.put("name", "zhangsan");
map.put("age","28");
return map;
}
};
requestQueue.add(stringRequest);
}
2. json 형식의 요청
1. json 의 생 성 및 해석
사용 규칙: 꽃 괄호 를 만나면 JSONobject 를 사용 하고, 네모 난 괄호 를 만나면 JSONarray 를 사용 합 니 다.
예 를 들 면:
JSONobject 생 성:
방법 1: hashmap 집합 사용
HashMap params = new HashMap();
params.put("phone", "17310386760");
params.put("messageCode", "1512");
JSONObject jsonObject = new JSONObject(params );
방법 2: put 직접 사용
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("phone", "15177777777");
params.put("messageCode", "1512");
} catch (JSONException e) {
e.printStackTrace();
}
방법 3: gsongson 생 성 사용: javabean 을 복잡 하 게 사용 하고 간단하게 사용: new Gson (). toJSon (String str);
2. json 의 volley 패키지 요청
2 - 1, 요청 형식 은 jsonObject 형식의 패키지 입 니 다.
public class JsonObjectRequset extends JsonRequest {
public JsonObjectRequset(String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener) {
super(url, requestBody, listener, errorListener);
}
public JsonObjectRequset(int method, String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener) {
super(method, url, requestBody, listener, errorListener);
}
//
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
// return null;
String parsed;
try {
parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
} catch (UnsupportedEncodingException e) {
parsed = new String(response.data);
}
return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response));
}
//
@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap();
headers.put("Charset", "UTF-8");
headers.put("Content-Type", "application/json");
return headers;
}
}
2 - 2. 요청 형식 은 일반 json 형식의 패키지 입 니 다.
public class JsonRequset extends JsonRequest {
public JsonRequset(String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener{
super(url, requestBody, listener, errorListener);
}
public JsonRequset(int method, String url, String requestBody, Response.Listener listener, Response.ErrorListener errorListener) {
super(method, url, requestBody, listener, errorListener);
}
//
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
// return null;
String parsed;
try {
parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
} catch (UnsupportedEncodingException e) {
parsed = new String(response.data);
}
return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response));
}
//
@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap();
headers.put("Charset", "UTF-8");
headers.put("Content-Type", "application/json");
return headers;
}
//
@Override
public String getBodyContentType() {
// return String.format("application/x-www-form-urlencoded; charset=%s", "utf-8");
return super.getBodyContentType();
}
3. 사용
public void requestTest() {
String url = "http://192.168.5.110:8080/list";
Map params = new HashMap();
params.put("identity", "111111111111111");
params.put("messageCode", "1512");
params.put("randClient", "5351");
JSONObject jsonObject = new JSONObject(params);
JsonRequst jsonRequest = new JsonRequst(Request.Method.POST, url, jsonObject.toString, new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", response + " ");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("TAG", new String(error.networkResponse.data) + " ");
}
});
requestQueue.add(jsonRequest);
}
3. xml 형식의 요청
1. xml 생 성 및 해석
xml 에 대한 요청 과 해석 에 대한 자세 한 내용 은 다른 블 로그 참조: 링크 를 열 려 면 누 르 십시오.
http://blog.csdn.net/yoonerloop/article/details/53166478
2. xml 네트워크 요청 get 요청
/**
* Description: xml get
* Date : 2016/10/24 16:21
*/
public class sad extends Request {
private final Response.Listener mListener;
public sad(int method, String url, Response.Listener listener,
Response.ErrorListener errorListener) {
super(method, url, errorListener);
mListener = listener;
}
public sad(String url, Response.Listener listener, Response.ErrorListener errorListener) {
this(Method.GET, url, listener, errorListener);
}
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
try {
String xmlString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(xmlString));
return Response.success(xmlPullParser, HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (XmlPullParserException e) {
return Response.error(new ParseError(e));
}
}
@Override
protected void deliverResponse(XmlPullParser response) {
try {
mListener.onResponse(response);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
}
3. xml 네트워크 요청 post 요청 (1)
/**
* Description: ,xml, XmlPullParser xml,requestBody, xml
* Date : 2016/10/26 10:39
*/
public class aaaa extends Request {
/** Charset for request. */
private static final String PROTOCOL_CHARSET = "utf-8";
/** Content type for request. */
private static final String PROTOCOL_CONTENT_TYPE =
String.format("text/xml; charset=%s", PROTOCOL_CHARSET);
private final String mRequestBody;
private final Response.Listener mListener;
public aaaa(int method, String url,String requestBody, Response.Listener listener,
Response.ErrorListener errorListener) {
super(method, url, errorListener);
mListener = listener;
mRequestBody=requestBody;
}
public aaaa(String url,String requestBody, Response.Listener listener,
Response.ErrorListener errorListener) {
this(Method.POST, url,requestBody, listener, errorListener);
}
@Override
protected Response parseNetworkResponse(
NetworkResponse response) {
try {
String xmlString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(xmlString));
return Response.success(xmlPullParser,
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (XmlPullParserException e) {
return Response.error(new ParseError(e));
}
}
@Override
protected void deliverResponse(XmlPullParser response) {
try {
mListener.onResponse(response);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
/**
* @deprecated Use {@link #getBodyContentType()}.
*/
@Override
public String getPostBodyContentType() {
return getBodyContentType();
}
/**
* @deprecated Use {@link #getBody()}.
*/
@Override
public byte[] getPostBody() {
return getBody();
}
@Override
public String getBodyContentType() {
return PROTOCOL_CONTENT_TYPE;
}
@Override
public byte[] getBody() {
try {
return mRequestBody == null ? null : mRequestBody.getBytes(PROTOCOL_CHARSET);
} catch (UnsupportedEncodingException uee) {
VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s",
mRequestBody, PROTOCOL_CHARSET);
return null;
}
}
@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap();
headers.put("Charset", "UTF-8");
headers.put("Content-Type", "text/xml");
headers.put("Accept-Encoding", "*/*");
headers.put("Connection", "close");
return headers;
}
}
4. xml 네트워크 요청 post 요청 (2)
/**
* Description: xml, xml
* Date : 2016/10/26 17:08
*/
public class StringXMLRequst extends Request {
private static final String PROTOCOL_CHARSET="utf-8";
private static final String PROTOCOL_CONTENT_TYPE=String.format("text/xml;charset=%s", PROTOCOL_CHARSET);
private final String mRequestBody;
private final Listener mListener;
public StringXMLRequst(int method, String url, String requestBody, Listener listener, ErrorListener errorlistener) {
super(method, url,errorlistener);
this.mListener=listener;
this.mRequestBody=requestBody;
}
public StringXMLRequst(String url, String requestBody, Listener listener, ErrorListener errorlistener) {
this(Method.POST, url,requestBody, listener,errorlistener);
}
@Override
protected Response parseNetworkResponse(NetworkResponse response) {
try {
String xmlString=new String(response.data,HttpHeaderParser.parseCharset(response.headers));
return Response.success(xmlString, HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
@Override
protected void deliverResponse(String response) {
try {
mListener.onResponse(response);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
/*@Override
public RetryPolicy getRetryPolicy() {
RetryPolicy retryPolicy = new DefaultRetryPolicy(15*1000,
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
return retryPolicy;
}*/
@Override
public String getPostBodyContentType() {
return getBodyContentType();
}
@Override
public byte[] getPostBody() throws AuthFailureError {
return getBody();
}
@Override
public String getBodyContentType() {
return PROTOCOL_CONTENT_TYPE;
}
@Override
public byte[] getBody() throws AuthFailureError {
// TODO Auto-generated method stub
try {
return mRequestBody==null?super.getBody():mRequestBody.getBytes(PROTOCOL_CHARSET);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
public Map getHeaders() throws AuthFailureError {
Map headers=new HashMap<>();
headers.put("Charset", "UTF-8");
headers.put("Content-Type", "text/xml");
headers.put("Accept-Encoding", "*/*");
return headers;
}
}
위의 3 과 4 의 차 이 는: 요청 한 것 은 모두 String 형식의 xml 이 고, 3 이 되 돌아 오 는 XmlPullParser 형식의 데이터 해석 해석 입 니 다. 4 가 되 돌아 오 는 것 은 String 형식의 문자열 기억 과 권한 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.