网络访问技术

来源:互联网 发布:单片机开发步骤 编辑:程序博客网 时间:2024/06/06 00:44

一.在android开发中,对网络上图片和网页的常用访问技巧
   1.首先创建url对象,URL url = new URL("http:www.xxx.com/picture.jpg");
   2.通过url对象来得到一个HttpURLConnection对象,HttpURLConnection mHttpURLConnection = (HttpURLConnection)url.openConnection();
   3.发送请求方式,常用的有GET,POST。 mHttpURLConnection.setRequestMethod("GET");
   4.设置连接超时时间,mHttpURLConnection.setConnectTimeout(5 * 1000);
   5.得到一个输入流对象,通过输入流获取图片数据,InputStream inStream = mHttpURLConnection.getInputStream();
   6.读取输入流的数据,以二进制数组形式保存,byte[] data = StreamTool.readInputStream(inStream);
   7.创建一个本地的图片文件,File imageFile = new File("picture.jpg");
   8.创建一个文件输出流对象,FileOutputStream outStream = new FileOutputStream(imageFile);
   9.向输出流里面写数据,outStream.write(data);
   10.关闭输出流,outStream.close();
   android中图片常用位图来保存,Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
   显示图片,setImageBitmap(bitmap); 
 
   
    流工具类StreamTool用来读取输入流的数据的实现代码:
    public static byte[] readInputStream(InputStream inStream) throws Exception{
  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  byte[] buffer = new byte[1024];
  int len = 0;
  while( (len=inStream.read(buffer)) != -1 ){
   outStream.write(buffer, 0, len);
  }
  inStream.close();
  return outStream.toByteArray();
 }

 

二.从网络中访问xml文件的技巧
   获取到的xml数据以集合保存起来List<New>
   1.首先创建url对象,URL url = new URL(path);
   2.通过url对象来得到一个HttpURLConnection对象,HttpURLConnection mHttpURLConnection = (HttpURLConnection)url.openConnection();
   3.发送请求方式,常用的有GET,POST。 mHttpURLConnection.setRequestMethod("GET");
   4.设置连接超时时间,mHttpURLConnection.setConnectTimeout(5 * 1000);
   5.得到一个输入流对象,通过输入流获取图片数据,InputStream inStream = mHttpURLConnection.getInputStream();  此时返回的是parseXML(inStream)方法处理后的数据;
   6.在parseXML(inStream)方法中实现对xml的解析,可以用常用的3种解析技术进行解析。以pull技术为例说明:
    public  List<New> parseXML(InputStream inStream) throws Exception{
  XmlPullParser parser = Xml.newPullParser();
  parser.setInput(inStream, "UTF-8");
  int eventType = parser.getEventType();//产生第一个事件
  while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件
   switch (eventType) {
   case XmlPullParser.START_DOCUMENT:
    
    break;
 
   case XmlPullParser.START_TAG:
    
    break;
    
   case XmlPullParser.END_TAG:
    
    break;
   }
   eventType = parser.next();
  }
  return mNews;
    7. List集合中以HashMap对象进行存放,List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();
    8. 通过for循环迭代把解析后数据放入HashMap对象里
    HashMap<String, Object> item = new HashMap<String, Object>();
    item.put();
    data.add(item);
    9.创建一个适配器对象,SimpleAdapter adapter = new SimpleAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to)
   10.通过适配器对象把数据显示在应用列表中,setAdapter(adapter).

三. 从网络上获取JSON格式的数据的技巧和访问xml格式文件差不多
    public  List<New> getJSONLastVideos() throws Exception{
  List<New> mNews = new ArrayList<New>();
  URL url = new URL(path);
  HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  conn.setReadTimeout(5*1000);
  conn.setRequestMethod("GET");
  InputStream inStream = conn.getInputStream();
  byte[] data = StreamTool.readInputStream(inStream);
  String json = new String(data);//把二进制数组转成字符串
  JSONArray array = new JSONArray(json);//得到一个json的数组对象
                //对数组对象里面的数据进行迭代
  for(int i=0 ; i < array.length() ; i++){
   JSONObject item = array.getJSONObject(i);//得到json对象,通过json对象获取各个属性的值
   int id = item.getInt("id");
   String title = item.getString("title");
   int timelength = item.getInt("content");
   mNews.add(new New(id, title, content));
  }
  return mNews;

   
 
  

 

原创粉丝点击