volley
1.导入volley的jar包
2.StringRequest的使用
private void showJson() {
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);
//第一步新建RequestQueue请求队列
StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e(TAG, response);
tv_json.setText(response);
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(),error);
}
});
//第二步新建一个stringrequest对象,Bing填写正确的参数
mQueue.add(stringRequest);
//最后一步将请求对象添加进请求队列中
//需要在mainfest文件中添加请求权限
}
以上代码同时在log和textview中显示了百度主页的HTML代码
接下来实现向http发送post请求
private void showJson() {
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);
StringRequest stringRequest = new StringRequest(Method.POST,
"http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e(TAG, response);
tv_json.setText(response);
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(), error);
}
}) {
//在这个位置添加代码
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("params1", "value1");
map.put("params2", "value2");
return map;
}
};
mQueue.add(stringRequest);
}
到这里就可以像服务器提交键值对样式的数据
3.JsonRequest的使用
private void showJson() {
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);
// http://www.weather.com.cn/data/sk/101110101.html
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
"http://www.weather.com.cn/data/sk/101110101.html", null,
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
Log.e(TAG, response.toString());
tv_json.setText(response.toString());
};
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(),error);
}
});
mQueue.add(jsonObjectRequest);
}
在这里使用jsonobjestrequest返回的数据是json格式的,所以和stringrequest的区别就是返回数据不一样其他都一样
4.ImageView的使用
private void showJson() {
RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);
//将请求对象换为ImageRequest即可
ImageRequest ivImageRequest = new ImageRequest(
"http://image.baidu.com/search/detail?ct=503316480&z=0&tn=baiduimagedetail&ipn=d&cl=2&cm=1&sc=0&lm=-1&ie=gbk&pn=0&rn=1&di=113961739210&ln=30&word=%CD%BC%C6%AC&os=665726132,356480541&cs=4236942158,2307642402&objurl=http%3A%2F%2Fpic32.nipic.com%2F20130829%2F12906030_124355855000_2.png&bdtype=0&simid=3444347259,284796380&fr=ala&ala=1&alatpl=others&pos=1",
new Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bm) {
iv_json.setImageBitmap(bm);
}
}, 0, 0, Config.RGB_565, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
Log.e(TAG, "加载失败");
}
});
mQueue.add(ivImageRequest);
}