okhttp方法上传图片和接收图片
2016-05-20 20:37
791 查看
1、用户端:okhttp方法的请求方式
private void okHttppost() {
OkHttpClient okHttpClient = new OkHttpClient();
RequestBody body = new FormEncodingBuilder()
//创建post请求体
.add("username", "zhangsan").add("pwd", "123456").build();
Request request = new Request.Builder()
.url("http://192.168.11.17:8080/maWep/LoginServlet").post(body).build();
try { //执行访问网络
Response response = okHttpClient.newCall(request).execute();
String s = new String(response.body().bytes());
} catch (IOException e) {e.printStackTrace(); }}
2、上传文件图片
final AssetManager.AssetInputStream ais =//转化为图片流
(AssetManager.AssetInputStream) getResources().openRawResource(R.raw.caocao);
new Thread() {public void run() { singImage(ais);}}.start();
private void singImage(InputStream ais) { try {
URL url = new URL("http://192.168.11.17:8080/maWep/UpLoadImage");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true); conn.setDoOutput(true);
conn.setConnectTimeout(30000);conn.setReadTimeout(30000);
conn.connect();
OutputStream out = conn.getOutputStream();
byte[] bytes = new byte[1024];//将图片流写入到输出流中
int len = 0; while ((len = ais.read(bytes)) != -1) {
out.write(bytes, 0, len);}
out.flush(); out.close();conn.getInputStream();
} catch (Exception e) {e.printStackTrace(); }}
3、服务器端:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");PrintWriter out = response.getWriter();
InputStream inputStream = request.getInputStream();//接收图片流
String path=getServletContext().getRealPath("/image");//获取文件绝对路径
FileOutputStream outputStream = //输出流用来存储图片
new FileOutputStream(new File(path,"/abc.jpg"));
byte [] b =new byte[1024]; int len=0;
while((len=inputStream.read(b))!=-1){outputStream.write(b,0,len);}
inputStream.close();out.flush();out.close();}
private void okHttppost() {
OkHttpClient okHttpClient = new OkHttpClient();
RequestBody body = new FormEncodingBuilder()
//创建post请求体
.add("username", "zhangsan").add("pwd", "123456").build();
Request request = new Request.Builder()
.url("http://192.168.11.17:8080/maWep/LoginServlet").post(body).build();
try { //执行访问网络
Response response = okHttpClient.newCall(request).execute();
String s = new String(response.body().bytes());
} catch (IOException e) {e.printStackTrace(); }}
2、上传文件图片
final AssetManager.AssetInputStream ais =//转化为图片流
(AssetManager.AssetInputStream) getResources().openRawResource(R.raw.caocao);
new Thread() {public void run() { singImage(ais);}}.start();
private void singImage(InputStream ais) { try {
URL url = new URL("http://192.168.11.17:8080/maWep/UpLoadImage");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true); conn.setDoOutput(true);
conn.setConnectTimeout(30000);conn.setReadTimeout(30000);
conn.connect();
OutputStream out = conn.getOutputStream();
byte[] bytes = new byte[1024];//将图片流写入到输出流中
int len = 0; while ((len = ais.read(bytes)) != -1) {
out.write(bytes, 0, len);}
out.flush(); out.close();conn.getInputStream();
} catch (Exception e) {e.printStackTrace(); }}
3、服务器端:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");PrintWriter out = response.getWriter();
InputStream inputStream = request.getInputStream();//接收图片流
String path=getServletContext().getRealPath("/image");//获取文件绝对路径
FileOutputStream outputStream = //输出流用来存储图片
new FileOutputStream(new File(path,"/abc.jpg"));
byte [] b =new byte[1024]; int len=0;
while((len=inputStream.read(b))!=-1){outputStream.write(b,0,len);}
inputStream.close();out.flush();out.close();}
相关文章推荐
- TCP和UDP数据包结构
- http://www.cnblogs.com/ycjing/p/5281384.html
- 基于TCP/IP协议的socket编程
- java代码中发送http请求的DnsResolver使用问题
- Font from origin 'http://apps.bdimg.com' has been blocked
- keepalived高可用http服务实例
- TCP/IP,Http,Socket,XMPP的区别
- php 下载网络图片到本地服务器
- iOS开发之网络检测
- GDOI 2016 Day2 T3 机密网络
- HttpServletRequest——获取URL的方法
- 在Android6.0以后如何使用HTTPclient
- 利用zlib库对HTTP收到的gzip数据解压
- iOS开发常用开源框架——网络
- ubuntu运维--网络配置
- MFC使用HttpGet和HttpPost方法与服务器通信
- HttpClient的psot方式
- JAVA 通过 Socket 实现 TCP 编程
- OC下载网络数据简介
- 网络WireShark进行抓包