• 团队开发冲刺日(十一)


      初次尝试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会出现问题,正在尝试解决问题。

  • 相关阅读:
    VUE 网页端改成桌面端(Electron)
    GitHub 的使用(用Git完成代码提交)
    Entity Framework Code Firest 连接Sqlserver数据库(增删改查)
    C# 微信小程序支付(ASP.NET Core WebApi )
    Entity Framework Code Firest 连接Postgresql数据库
    ASP.NET Core 实现 MQTT通讯协议 Demo(开源库:MQTTnet)
    ASP.NET Core WebApi + EF Core(实现增删改查,使用Swagger测试API)
    Redis不同数据类型的的数据结构实现
    C#通过Redis实现分布式锁
    网络爬虫基本原理(一)
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/12763626.html
Copyright © 2020-2023  润新知