zoukankan      html  css  js  c++  java
  • 团队开发冲刺日(十一)

      初次尝试OKHttp,图片传输遇到问题。

      Android Studio导入OKHttp:

    首先点击File---->Project Structure...

      

    如下图所示,选择Dependencies-------->All Dependencies下的+号,选择第一个Library Dependency

     

    搜索okhttp,选择com.squareup.okhttp3,点击OK即可,之后等待导入完成。

     

     说明错误代码处:

     1  handin.setOnClickListener(new View.OnClickListener() {
     2             @Override
     3             public void onClick(View v) {
     4                 //正文信息
     5                 final String note_str = note.getText().toString();
     6                 //标题信息
     7                 final String title_str = title.getText().toString();
     8                 final String[] see_judge={""};
     9 
    10                 //根据开关决定笔记是否公开,0为公开,1为不公开
    11                 see.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    12                     @Override
    13                     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    14                         if(isChecked){
    15                             see_judge[0] = "公开";
    16                         }
    17                         else{
    18                             see_judge[0] = "私有";
    19                         }
    20                     }
    21                 });
    22                 //OKHttp
    23                 OkHttpClient client = new OkHttpClient();
    24                 MultipartBody.Builder builder = new MultipartBody.Builder();
    25                 builder.setType(MultipartBody.FORM);
    26                 builder.addFormDataPart("title",title_str);
    27                 builder.addFormDataPart("note",note_str);
    28                 builder.addFormDataPart("see",see_judge[0]);
    29 
    30                 int pic_i=0;
    31                 String URL="http://..../Servlet";
    32                 for(HashMap<String,Object>pic:imageItem){
    33                     Set<String> set=pic.keySet();
    34                     for(String key:set){
    35                         if(pic_i==0){
    36                             pic_i++;
    37                             continue;
    38                         }else{
    39                             File file = new File(pic.get(key));
    40                             builder.addFormDataPart("picture",file.getName(), RequestBody.create(PNG,file));
    41                         }
    42                     }
    43                 }
    44                 RequestBody requestBody = builder.build();
    45                 Request.Builder RequestBuilder = new Request.Builder();
    46                 RequestBuilder.url(URL);
    47                 RequestBuilder.post(requestBody);
    48                 Request request=RequestBuilder.build();
    49                 client.newCall(request).enqueue(new Callback() {
    50                     @Override
    51                     public void onFailure(@NotNull Call call, @NotNull IOException e) {
    52                         call.cancel();
    53                     }
    54 
    55                     @Override
    56                     public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
    57                         call.cancel();
    58                     }
    59                 });
    60             }
    61         });

    这是我尝试的OKHttp传输图片+文本参数的方法,图片以文件形式上传,问题在于行39,我存多个图片时使用的是HashMap保存,value值是Object类型的,直接转换成file会出现问题,正在尝试解决问题。

  • 相关阅读:
    文件操作
    内置函数
    lambda表达式
    函数基础
    基础数据类型-dict
    基础数据类型-tuple
    基础数据类型-list
    基础数据类型-set
    Python开发【第三篇】基本数据类型
    Python开发【第二篇】运算符
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/12763626.html
Copyright © 2011-2022 走看看