Я проверяю, как работает RetroFit, и пробовал следующее:
RestClient:
public class RestClient {
private static TaskService REST_CLIENT;
private static String ROOT =
"URL";
static {
setupRestClient();
}
private RestClient() {}
public static TaskService get() {
return REST_CLIENT;
}
private static void setupRestClient() {
OkHttpClient OkHttpClient=new OkHttpClient();
RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint(ROOT)
.setClient(new OkClient(new OkHttpClient()))
.setConverter(new SimpleXmlConverter());
builder.setLogLevel(RestAdapter.LogLevel.FULL);
RestAdapter restAdapter = builder.build();
REST_CLIENT = restAdapter.create(TaskService.class);
}
}
В действии:
public void testMethod()
{
User user=new User("58","345435","4","","0");
RestClient.get().getWeather(user,new Callback<String>() {
@Override
public void success(String s, Response response) {
Log.d("testret", "success: " + s);
Log.d("testret", "successu: " + response.getUrl());
Log.d("testret", "successs: " + response.getStatus());
}
@Override
public void failure(RetrofitError error)
{
Log.d("testret", "errore: " + error);
Log.d("testret", "erroru: " + error.getUrl());
}
});
}
Пользователь:
public class User {
String FTID,UUID,TYPE,DateTimeStamp,SDFVersionNb;
public User(String FTID,String UUID,String TYPE,String DateTimeStamp,String SDFVersionNb)
{
this.DateTimeStamp=DateTimeStamp;
this.FTID=FTID;
this.UUID=UUID;
this.SDFVersionNb=SDFVersionNb;
this.TYPE=TYPE;
}
}
Интерфейс:
public interface TaskService {
@POST("/GetBulkQueryUpdates")
void getWeather(@Body User user,
Callback<String> callback);
}
вышеуказанный метод веб-службы возвращает следующее:
<ROWS>
<ROW>
<GroupBy>3</GroupBy>
<QUERY>
Query Statement
</QUERY>
</ROW>
</ROWS>
Итак, я использую метод post для получения вышеуказанных данных, но я продолжаю каждый раз получать внутреннюю ошибку сервера 500, хотя при выполнении метода веб-сервиса из Интернета данные извлекаются. так что проблема с кодом выше, но я не могу понять, что. я попытался добавить .setConverter(new SimpleXmlConverter()); после просмотра следующего URL-адреса: Android Retrofit возвращает статус 500 внутренняя ошибка сервера но это было то же самое.
любая помощь будет оценена.
User
есть геттеры и сеттеры. - person EpicPandaForce   schedule 04.05.2015