网络连接请求

来源:互联网 发布:java中文乱码怎么解决 编辑:程序博客网 时间:2024/06/05 18:28
//在Android中的官方链接网络,这个操作在子线程中操作,有try{}catc(){}防止出错,抓异常<uses-permission android:name="android.permission.INTERNET" /> //有网络请求加权限
String link ="http://www.jcodecraeer.com";//网络连接地址URL url = new URL(link);HttpURLConnection connect = (HttpURLConnection) url.openConnection();//打开连接//设置请求头信息,一般不用设置connect.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");//设置请求方式,里面的字符串一定要大写,一般有GET,POST请求方式connect.setRequestMethod("GET");//OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCHconnect.setConnectTimeout(1000);//设置链接超时时长,一般不用设置connect.setReadTimeout(1000);//设置解析超时时长,最好设置一下,严谨
//链接码是不是请求成功了,一般请求成功是200的请求码
 if(connect.getResponseCode()==HttpURLConnection.HTTP_OK) {
//
从网络上获取输入流,剩下的就是你解析流获取数据了
    InputStream inputStream = connect.getInputStream();
 }

volley的请求方式,框架的好处是会有缓存,步骤简单等等

1. 创建一个RequestQueue对象。

2. 创建一个StringRequest对象。

3. 将StringRequest对象添加到RequestQueue里面。

RequestQueue mQueue = Volley.newRequestQueue(context);
  1. StringRequest stringRequest = new StringRequest("http://www.baidu.com",  
  2.                         new Response.Listener<String>() {  
  3.                             @Override  
  4.                             public void onResponse(String response) {  
  5.                                 Log.d("TAG", response);  
  6.                             }  
  7.                         }, new Response.ErrorListener() {  
  8.                             @Override  
  9.                             public void onErrorResponse(VolleyError error) {  
  10.                                 Log.e("TAG", error.getMessage(), error);  
  11.                             }  
  12.                         });
mQueue.add(stringRequest);  //添加到请求网络队列
//post的请求
  1. StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener) {  
  2.     @Override  
  3.     protected Map<String, String> getParams() throws AuthFailureError {  
  4.         Map<String, String> map = new HashMap<String, String>();  
  5.         map.put("params1""value1");  
  6.         map.put("params2""value2");  
  7.         return map;  
  8.     }  
  9. };
//还有区别于StringRequest的方式,JsonObjectRequest,后面都是把这个new出来的对象添加到队列里
  1. JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html"null,  
  2.         new Response.Listener<JSONObject>() {  
  3.             @Override  
  4.             public void onResponse(JSONObject response) {  
  5.                 Log.d("TAG", response.toString());  
  6.             }  
  7.         }, new Response.ErrorListener() {  
  8.             @Override  
  9.             public void onErrorResponse(VolleyError error) {  
  10.                 Log.e("TAG", error.getMessage(), error);  
  11.             }  
  12.         }); 
//还有区别于StringRequest,JsonObjectRequest的ImageRequest, 不过很少有人用,
,后面都是把这个new出来的对象添加到队列里
  1. ImageRequest imageRequest = new ImageRequest(  
  2.         "http://developer.android.com/images/home/aw_dac.png",  
  3.         new Response.Listener<Bitmap>() {  
  4.             @Override  
  5.             public void onResponse(Bitmap response) {  
  6.                 imageView.setImageBitmap(response);  
  7.             }  
  8.         }, 00, Config.RGB_565, new Response.ErrorListener() {  
  9.             @Override  
  10.             public void onErrorResponse(VolleyError error) {  
  11.                 imageView.setImageResource(R.drawable.default_image);  
  12.             }  
  13.         }); 

//还有等下自己补



0 0