改造Android基本和简单的问题 [英] Retrofit Android basic and simple issue

查看:41
本文介绍了改造Android基本和简单的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的服务器返回如下简单的 Json 结果,

My server returns simple Json result like below,

{"message":"Upload Success.!"}

我正在尝试将结果放入 Retrofit Model 类

I am trying to get the result into Retrofit Model class

public class MyResponse {
    @SerializedName("message")
    String message;
}

我的接口类在这里

public interface MyService {

    @Multipart
    @POST("/")
    public retrofit2.Call<MyResponse> saveFile(@Part("filename") String fileName, @Part("photo") RequestBody photo);
}

这就是我尝试获取结果的方式

this is how i try to fetch the result

Gson gson = new GsonBuilder()
                            .setLenient()
                            .create();

Retrofit retrofit = new Retrofit.Builder().baseUrl("http://xxxxxxx.com/fileupload.php/").addConverterFactory(GsonConverterFactory.create(gson)).build();

MyService service = retrofit.create(MyService.class);

retrofit2.Call<MyResponse> call = service.saveFile(filename, requestbody);

retrofit2.Response<MyResponse> response = call.execute();

但我无法将结果绑定到 MyResponse

But i cannot bind the result to the MyResponse class

结果吧

02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:117)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:211)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute(ExecutorCallAdapterFactory.java:89)
02-23 21:22:43.074 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at retrofitquictest.com.retrofitquicktest.MainActivity$1.run(MainActivity.java:72)
02-23 21:22:43.075 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at java.lang.Thread.run(Thread.java:818)
02-23 21:22:43.075 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err: Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
02-23 21:22:43.075 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
02-23 21:22:43.075 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213)
02-23 21:22:43.075 20293-20410/retrofitquictest.com.retrofitquicktest W/System.err:     ... 8 more

我想我在这里犯了一个小错误.有人可以识别吗?

I guess I'm doing small mistake here. can someone identify that please ?

推荐答案

根据改造文档,在您的情况下,您的基本 url 应该只包含 url 的第一部分:基本网址应该是 "http://xxxxxxx.com/并像这样在 Post 中添加另一部分 @POST("fileupload.php/").试一试也许它对你有用.

According to retrofit documentation your base url should only consist the first part of url in your case: Base url should be "http://xxxxxxx.com/ and add the other part in Post like this @POST("fileupload.php/"). Give it a try maybe it will work for you.

谢谢!

这篇关于改造Android基本和简单的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆