当前位置: 首页 > 知识库问答 >
问题:

需要从api使用retrofit2返回的响应中获取字符串

丌官高远
2023-03-14

我试图获得字符串值返回API成功。我获得了成功,但我没有在响应中获得所需的值,但当我导航到响应->Body->responseBody时,它会显示该值,但我无法获得该值(请查看屏幕截图以获得详细信息)。

private void uploadImage(String imagePath) {

    try{
        showProgressDialogue();
        File file = new File(imagePath);
        RequestBody photoContent = RequestBody.create(MediaType.parse("multipart/form data"), file);
        MultipartBody.Part photo = MultipartBody.Part.createFormData("file",file.getName(),photoContent);
        //RequestBody description = RequestBody.create(MediaType.parse("description"),"abc");
        UploadService uploadService = APIClient.getClient().create(UploadService.class);
        Call call1 = uploadService.UploadOMRExamPaper(photo);
        call1.enqueue(new Callback<Response>() {
            @Override
            public void onResponse(Call<Response> call, Response<Response> response) {
                progressBar.dismiss();
            }

            @Override
            public void onFailure(Call<Response> call, Throwable t) {
                progressBar.dismiss();
                Toast.makeText(getApplicationContext(), t.getMessage(),Toast.LENGTH_LONG).show();
            }
        });

    }catch (Exception e){
        progressBar.dismiss();
        Toast.makeText(this, e.getMessage(),Toast.LENGTH_LONG).show();
    }

}

共有1个答案

呼延聪
2023-03-14

更改您的代码:从:

File file = new File(imagePath);
RequestBody photoContent = RequestBody.create(MediaType.parse("multipart/form data"), file);
MultipartBody.Part photo = MultipartBody.Part.createFormData("file",file.getName(),photoContent);

致:

File file = new File(imagePath);
RequestBody photoContent = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part photo = MultipartBody.Part.createFormData("upload", file.getName(), photoContent );

注意:这里的“上传”只是一个示例,您应该从api paramater中编写。

 类似资料:
  • 问题内容: 我正在使用Retrofit1旧样式 现在,我不想获取“ User”类,但是我想要获取String响应。 以前我们使用的是“ Response”,但是在改造2中没有“ Response”, 我如何在不使用任何json解析的情况下从服务器获取字符串响应或全身响应? 问题答案: 建立这个课程 与它一起使用 编辑: 您必须将其定义为 retrofit2不支持回调,因此您必须删除它。要使其异步,

  • 如果我尝试实现一个自定义转换器(我在网上找到了一些例子),它会抱怨我没有实现抽象方法convert(F),而这些例子都没有实现。 谢了。

  • 我正在尝试对GsonConverterFactory使用Retrofit2,问题是这是我从okhttp: 因此,我得到以下例外: java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第2列为字符串 如何删除特殊字符和回车与改装2?

  • 我在使用Spring RestTemplate时遇到了问题。 现在,我向一个restful服务发送一个PUT请求,该restful服务向我发回重要的信息作为响应。 问题(就像我前面说的)是上面的try/catch没有返回任何响应,但它给了我一个200的响应。 所以现在我问,会有什么问题?

  • 我正在使用ApacheJMeter发出HTTP请求。 响应格式如下: HTTP/1.1 100继续 HTTP/1.1 200 OK x-powering-by: Express access-Control-low-source:*access-Control-low-method: HEAD, POST, PUT, GET, OPTIONS, DELETE access-Control-low-

  • 我正在我的CakePhp项目中集成GitHub API。我正在使用卷曲来提出请求。我能够获得oAuth代码并成功访问。 我得到的是空响应。 我正在粘贴我在下面得到的响应: 头“:{”URL“:”https://api.github.com/user?access_token=7190aa11e267e0665edd367ab723d18ec34c7d64“,”content_type“:null,