第十周总结

  本周是冲刺第二周,基本完成了记录功能的页面,就是后台上传Servlet上没有做好。本周写了相当一部分量的代码,但这里是包括其他学科的代码,比如php。

  印象最深的还是OKHttp的使用,如何导入请参考博客:https://www.cnblogs.com/20183711PYD/p/12763626.html

 1 //OKHttp
 2                 OkHttpClient client = new OkHttpClient();
 3                 MultipartBody.Builder builder = new MultipartBody.Builder();
 4                 builder.setType(MultipartBody.FORM);
 5                 builder.addFormDataPart("title",title_str);
 6                 builder.addFormDataPart("note",note_str);
 7                 builder.addFormDataPart("see",see_str);
 8 
 9                 int pic_i=0;
10                 //本地Tomcat,注意不能写localhost,写本机的ip地址
11                 String URL="http://192.168.101.18:8080/CloudNote/CloudServlet";
12                 for(HashMap<String,Bitmap>pic:imageItem){
13                     Set<String> set=pic.keySet();
14                     for(String key:set){
15                         if(pic_i==0){
16                             //跳过默认的+号图片
17                             pic_i++;
18                             continue;
19                         }
20                         //取出bitmap,转换成file,上传
21                         else if(pic_i==1){
22                             Bitmap fbm1 = pic.get(key);
23                             File dofile = doImage(fbm1);
24                             builder.addFormDataPart("image1",dofile.getName(),RequestBody.create(PNG,dofile));
25                             pic_i++;
26                         }
27                         else if(pic_i==2){
28                             Bitmap fbm2 = pic.get(key);
29                             File dofile = doImage(fbm2);
30                             builder.addFormDataPart("image2",dofile.getName(),RequestBody.create(PNG,dofile));
31                             pic_i++;
32                         }
33                         else if(pic_i==3){
34                             Bitmap fbm3 = pic.get(key);
35                             File dofile = doImage(fbm3);
36                             builder.addFormDataPart("image3",dofile.getName(),RequestBody.create(PNG,dofile));
37                             pic_i++;
38                         }
39                     }
40                 }
41                 RequestBody requestBody = builder.build();
42                 Request.Builder RequestBuilder = new Request.Builder();
43                 RequestBuilder.url(URL);
44                 RequestBuilder.post(requestBody);
45                 final Request request=RequestBuilder.build();
46                 client.newCall(request).enqueue(new Callback() {
47                     @Override
48                     public void onFailure(@NotNull Call call, @NotNull IOException e) {
49                         Log.i("TRYxxx","连接失败");
50                         e.printStackTrace();
51                     }
52 
53                     @Override
54                     public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
55                         Log.i("TRYxxx","连接的消息"+response.message());
56                         if(response.isSuccessful()){
57                             Log.i("TRYxxx","连接成功获取的内容"+response.body().string());
58                             Log.i("TRYyyy",title_str);
59                             Log.i("TRYyyy",note_str);
60                             Log.i("TRYyyy",see_str);
61                         }
62                     }
63                 });

以前曾写过Android连接servlet,但那次用的是HttpURLConnection,文本传输还是可以做得到的。这次因为附上图片传输,我选择使用OKHttp来完成,这一周有一小半时间在学习这东西。。。。

原文地址:https://www.cnblogs.com/20183711PYD/p/13059972.html