我看到这个问题很多次了,但还是不明白。看起来我在现场发送请求,但它的正文不正确。但为什么呢?可能我不清楚改造是如何工作的,但我不是只是收集请求的链接并等待服务器的答案吗?这是链接:这里
带有请求的接口
public interface NService {
@GET("/computers?p=2")
Call<Model> getItems();
}
和带有基本URL的类
public class APIUtils {
public static final String BASE_URL = "http://testwork.nsd.naumen.ru/rest/";
public static NService getMService() {
return RetrofitClient.getClient(BASE_URL).create(NService.class);
}
}
改装构建类
public class RetrofitClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseURL) {
if (retrofit==null) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
retrofit = new Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
}
JSON是通过这个解析的
主要活动是:
public class MainActivity extends AppCompatActivity {
private List<Item> responseModel;
private NService mService;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("testcrap", "before loading set");
setContentView(R.layout.activity_main);
mService = APIUtils.getMService(); // Строим retrofit объект, собираем ссылку
Log.d("testcrap", "before loading");
loadSomeCrap();
Log.d("testcrap", "after loading");
}
public void loadSomeCrap() {
Log.d("testcrap", "started parsing");
mService.getItems().enqueue(new Callback<Model>() {
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
Log.d("testcrap", "started onResponse");
if(response.isSuccessful()) {
Log.d("testcrap", "posts loaded from API");
}else {
Log.d("testcrap", "posts not loaded from API");
}
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
//showErrorMes sage();
Log.d("testcrap", t.toString());
}
});
}
}
日志:
before loading set
before loading
started parsing
after loading
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 13 column 1 path $
那么,如果请求错误,我应该为正常工作更改什么?
您的API或JSON响应将返回JSON\u对象,但您将以字符串形式获取它,因此将显示此JsonSyntaxException。尝试在对象中获取响应。
做出这些改变...
BASE_URL = "http://testwork.nsd.naumen.ru/"
然后在界面上。。
@GET("rest/computers?p=2")
.............
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
我试图只获取字符串请求,但它的给定错误如下 我的API输出如下: 响应代码:
从Android改型读取JSON字符串时出现问题。
我有一个API,为了获取数据,我必须发送一个JSON参数。这是必须在中发送才能获取数据的JSON。 它在postman中工作,但在Android中,我有以下错误: 我想这是我的模型中的一个问题,但我无法修复它。 我的型号: 还有两种型号用于排序和筛选。我使用改装 我使用构造函数设置SendParametersGetData(在本例中,仅设置了视图名和参数),并将其作为输入提供给getMembers
我必须使用Reform2创建/注册新用户我的服务器端是 我的模型课是 在职岗位为 将数据过帐为 我出错了 我找到了一些解决方案,并做出了相应的改变 但它也不起作用,同样的错误消息,如何解决这个错误。
我在我的Android应用程序中使用okhttp改造来进行网络请求。在其中一个请求中,我收到以下错误: com.google.gson.java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行列1路径$ 我在日志中看到201响应,但Retrofit抛出此错误。下面是我的代码。 signupParams值为-- 我已经用jsonLint测试了这个json