HttpUrlConnection 下的post, get , 和图片下载(工具类)
来源:互联网 发布:八爪鱼软件下载 编辑:程序博客网 时间:2024/06/09 16:30
HttpURLConnection 下的网络请求
- 1.IsNet->网络判断->HttpAsync中发起网络请求前使用
2.HttpGetUtils->get请求工具类(发起请求获取服务器返回值)->
HttpAsync->doinbackground->耗时联网操作- 3.HttpAsync->异步请求工具类->开启子线程耗时操作->网络判断;网络请求
- 问题:HttpAsync获取数据无法传递给Mainactivity?
- 回调方式解决
- 4.NetCallBack->回调接口->回调数据
- 5.MainActivity实现回调接口->给Netcallback接口类型赋值
- 6.MainActivity对象传递给HttpAsync->a.上下文;b.回调接口对象
- 7.httpAsync onPostExcute方法中使用回调传递数据给Mainactivity
- 8.MainActivity去resultstr处理字符串操作;resultBitmap显示图片;erro提示用户错误消息
- 9.AsyncContro控制产生HttpAsync对象以及调用excute方法开启异步类
网络判断工具类
package com.sxt.day05_network;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.NetworkInfo.State;/** * 网络判断工具类 * */public class IsNet { private Context ctx;//上下文 public IsNet(Context ctx){ this.ctx = ctx; } //返回值为true有网,为false情况下无网 public boolean IsNetWork(){ //ConnectivityManager->手机连接管理器 //getSystemService->获取系统服务 ConnectivityManager manager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); //网络状态封装类 NetworkInfo info; //网络状态 State state; //TYPE_MOBILE->移动网络类型 info = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if(info !=null){ state = info.getState(); //判断状态是否连接 if(state == State.CONNECTED){ return true; } } info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(info!=null){ state = info.getState(); if(state == State.CONNECTED){ return true; } } return false; }}
http—-post 请求
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * POST请求工具类 * */public class HttpPostUtils { //urlPath->请求地址 //Params->请求参数 public String PostStr(String urlPath,String Params){ String result = null; try { URL url = new URL(urlPath); HttpURLConnection httpc = (HttpURLConnection) url.openConnection(); httpc.setRequestMethod("POST"); httpc.setConnectTimeout(60*1000); httpc.setReadTimeout(60*1000); httpc.setDoInput(true); httpc.setDoOutput(true); OutputStream out = httpc.getOutputStream();//获取上传参数的输出流 out.write(Params.getBytes()); out.flush(); out.close(); if(httpc.getResponseCode() == 200){ BufferedReader br = new BufferedReader( new InputStreamReader( httpc.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while((line = br.readLine())!=null){ sb.append(line); } br.close(); result = sb.toString(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }}
Http—–get
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.util.Log;public class HttpGetUtils { /** * Get方式请求服务器数据方法 * urlPath:完整请求url地址 * result:服务器响应数据 * */ public String getStr(String urlPath){ String result = null; try { Log.e("","查看请求地址是否错误"+urlPath); //URL->服务器地址封装打开urlconnection(请求配置,发起请求,获取相应状态,获取返回流) URL url = new URL(urlPath); HttpURLConnection httpc = (HttpURLConnection) url.openConnection(); //请求方式设定 httpc.setRequestMethod("GET"); //连接超时 httpc.setConnectTimeout(60*1000); //读取超时 httpc.setReadTimeout(60*1000); //允许读入 httpc.setDoInput(true); //获取响应状态码->获取响应状态时发送请求->200 请求成功 if(httpc.getResponseCode() == 200){ //服务器数据读取到应用中 //服务器返回流转化为字符流 BufferedReader br = new BufferedReader( new InputStreamReader( httpc.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while((line = br.readLine()) != null){ sb.append(line); } br.close(); result = sb.toString(); Log.e("","查看返回值"+result); } } catch (MalformedURLException e) { //url生成异常 e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; }}
Http—–下载图片
import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.graphics.Bitmap;import android.graphics.BitmapFactory;/** * 获取服务器图片工具类 * */public class HttpBitmapUtils { public Bitmap downBitmap(String urlPath){ Bitmap bitmap = null; try { URL url = new URL(urlPath); HttpURLConnection httpc = (HttpURLConnection) url.openConnection(); httpc.setConnectTimeout(60*1000); httpc.setReadTimeout(60*1000); if(httpc.getResponseCode() == 200){ InputStream in = httpc.getInputStream(); //BitmapFactory->不同方式读取图片进入程序中 bitmap = BitmapFactory.decodeStream(in); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return bitmap; }}
最后附上实现的效果
demo源码
0 0
- HttpUrlConnection 下的post, get , 和图片下载(工具类)
- HttpUrlConnection使用Get和Post访问服务器的工具类(一)
- httpclient的post和get,httpurlconnection的post和get
- HttpURLConnection的get和post处理方法(含图片)
- HttpURLConnection的get和post处理方法(含图片)
- HttpURLConnection的post和Get方法
- HttpURLConnection的get和post请求
- HttpUrlConnection的GET请求和POST请求
- HttpURLConnection的GET和POST请求
- HttpURLConnection的GET和POST用法
- android的HttpURLConnection实现post和get
- HttpURLConnection的get和post请求实例
- httpurlconnection的Get请求和Post请求
- HttpUrlConnection的get和post请求方法
- HttpURLConnection的GET和POST请求方式
- HttpURLConnection的GET和POST解析
- Java HttpURLConnection的post和get请求
- HttpURLConnection的get和post请求实例
- phonegap(cordova)安装配置
- html写移动端时的网页自适应问题
- 输出变量的赋值符_连接符_占位符
- vxworks 信号量
- JAVA序列化的总结
- HttpUrlConnection 下的post, get , 和图片下载(工具类)
- Zoho CRM助保险公司可靠管理商机
- Git Server for Windows 环境搭建
- Android Handler
- 数据库第二章理论总结
- 坑爹的ubuntu,自带的firefox浏览器居然只能以root权限使用。
- Xcode多渠道自动化打包
- R语言实现RMF模型
- spring mvc 前台向后台传递参数方法总结