[转]android网络连接
本文转自:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3685.html
一:HttpURLConnection
处理文字数据
URLConnection 获取图片
注:URL可以直接InputStream is = URL.openStream();
XML 的应用
向服务器上传文件
DefaultHttpClient
用户登录验证
- URL sourceUrl;
- String fileName ="";
- try {
- sourceUrl = new URL("网址");
- fileName = sourceUrl.getFile();
- fileName = fileName.substring(fileName.lastIndexOf('/') + 1);
- fileName = "/sdcard/"+(new Date()).getTime()+fileName;
- /*创建临时文件
- File myTempFile = File.createTempFile("temfile", "."+"mp3");//文件扩展名
- 记录临时文件名
- currentTempFilePath = myTempFile.getAbsolutePath();
- */
- FileOutputStream fos = new FileOutputStream(fileName);
- int read = 0;
- byte[] buffer = new byte[512];
- HttpURLConnection conn = (HttpURLConnection) sourceUrl.openConnection();
- conn.setDoInput(true);
- conn.connect();
- int length = conn.getContentLength();
- InputStream is = conn.getInputStream();
- do{
- read = is.read(buffer);
- if(read > 0){
- fos.write(buffer, 0, read);
- }
- }while(read != -1);
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return;
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return;
- }
- if(fileName !=""){
- File file = new File(fileName);
- if (file.exists()){
- //根据filename,操作这个文件
- }
- }
- URL imageUrl = null;
- Bitmap bitmap = null;
- try
- {
- /* new URL对象将网址传入 */
- imageUrl = new URL(uriPic);
- }
- catch (MalformedURLException e)
- {
- e.printStackTrace();
- }
- try
- {
- /* 取得连接 */
- HttpURLConnection conn = (HttpURLConnection) imageUrl
- .openConnection();
- conn.connect();
- /* 取得返回的InputStream */
- InputStream is = conn.getInputStream();
- mTextView1.setText(conn.getResponseCode()+"="+conn.getResponseMessage());
- /* 将InputStream变成Bitmap */
- bitmap = BitmapFactory.decodeStream(is);
- /* 关闭InputStream */
- is.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
处理文字数据
- /* 将InputStream转成Reader */
- BufferedReader in = new BufferedReader(new InputStreamReader(
- conn.getInputStream()));
- String inputLine;
- /* 图文件路径 */
- String uriPic = "";
- /* 一行一行读取 */
- while ((inputLine = in.readLine()) != null)
- {
- uriPic += inputLine;
- }
URLConnection 获取图片
- URL aryURI = new URL(myImageURL[position]);
- URLConnection conn = aryURI.openConnection();
- conn.connect();
- InputStream is = conn.getInputStream();
- Bitmap bm = BitmapFactory.decodeStream(is);
- is.close();
- imageView.setImageBitmap(bm);
注:URL可以直接InputStream is = URL.openStream();
XML 的应用
- URL url = new URL(ConstData.queryString+cityParamString);
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser sp = spf.newSAXParser();
- XMLReader xr = sp.getXMLReader();
- myHandler gwh = new myHandler();
- xr.setContentHandler(gwh);
- InputStreamReader isr =new InputStreamReader(url.openStream(),"GBK");
- InputSource is=new InputSource(isr);
- xr.parse(is);
向服务器上传文件
- private void uploadFile()
- {
- String end = "\r\n";
- String twoHyphens = "--";
- String boundary = "*****";
- try
- {
- URL url =new URL(actionUrl);
- HttpURLConnection con=(HttpURLConnection)url.openConnection();
- /* 允许Input、Output,不使用Cache */
- con.setDoInput(true);
- con.setDoOutput(true);
- con.setUseCaches(false);
- /* 设置传送的method=POST */
- con.setRequestMethod("POST");
- /* setRequestProperty */
- con.setRequestProperty("Connection", "Keep-Alive");
- con.setRequestProperty("Charset", "UTF-8");
- con.setRequestProperty("Content-Type",
- "multipart/form-data;boundary="+boundary);
- /* 设置DataOutputStream */
- DataOutputStream ds =
- new DataOutputStream(con.getOutputStream());
- ds.writeBytes(twoHyphens + boundary + end);
- ds.writeBytes("Content-Disposition: form-data; " +
- "name=\"file1\";filename=\"" +
- newName +"\"" + end);
- ds.writeBytes(end);
- /* 取得文件的FileInputStream */
- FileInputStream fStream = new FileInputStream(uploadFile);
- /* 设置每次写入1024bytes */
- int bufferSize = 1024;
- byte[] buffer = new byte[bufferSize];
- int length = -1;
- /* 从文件读取数据至缓冲区 */
- while((length = fStream.read(buffer)) != -1)
- {
- /* 将资料写入DataOutputStream中 */
- ds.write(buffer, 0, length);
- }
- ds.writeBytes(end);
- ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
- /* close streams */
- fStream.close();
- ds.flush();
- /* 取得Response内容 */
- InputStream is = con.getInputStream();
- int ch;
- StringBuffer b =new StringBuffer();
- while( ( ch = is.read() ) != -1 )
- {
- b.append( (char)ch );
- }
- /* 将Response显示于Dialog */
- showDialog(b.toString().trim());
- /* 关闭DataOutputStream */
- ds.close();
- }
- catch(Exception e)
- {
- showDialog(""+e);
- }
- }
DefaultHttpClient
用户登录验证
- /* 账号:david */
- /* 密码:1234 */
- String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/TestLogin/index.php";
- String strRet = "";
- try
- {
- DefaultHttpClient httpclient = new DefaultHttpClient();
- HttpResponse response;
- HttpPost httpost = new HttpPost(uriAPI);
- List <NameValuePair> nvps = new ArrayList <NameValuePair>();
- nvps.add(new BasicNameValuePair("uid", strUID));
- nvps.add(new BasicNameValuePair("upw", strUPW));
- httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
- response = httpclient.execute(httpost);
- HttpEntity entity = response.getEntity();
- //entity = response.getEntity();
- Log.d(TAG, "HTTP POST getStatusLine: " + response.getStatusLine());
- /* HTML POST response BODY */
- strRet = EntityUtils.toString(entity);
- Log.i(TAG, strRet);
- strRet = strRet.trim().toLowerCase();
- List<cookie> cookies = httpclient.getCookieStore().getCookies();
- if (entity != null)
- {
- entity.consumeContent();
- }
- Log.d(TAG, "HTTP POST Initialize of cookies.");
- cookies = httpclient.getCookieStore().getCookies();
- if (cookies.isEmpty())
- {
- Log.d(TAG, "HTTP POST Cookie not found.");
- Log.i(TAG, entity.toString());
- }
- else
- {
- for (int i = 0; i < cookies.size(); i++)
- {
- Log.d(TAG, "HTTP POST Found Cookie: " + cookies.get(i).toString());
- }
- }
- if(strRet.equals("y"))
- {
- Log.i("TEST", "YES");
- return true;
- }
- else
- {
- Log.i("TEST", "NO");
- return false;
- }
- }
- catch(Exception e)
- {
- e.printStackTrace();
- return false;
- }
posted on 2011-12-28 15:56 freeliver54 阅读(500) 评论(0) 编辑 收藏 举报