获取RetrofitError:500内部服务器错误
林检查如何改造工程和尝试以下操作:获取RetrofitError:500内部服务器错误
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);
}
上述Web服务方法返回follwing:
<ROWS>
<ROW>
<GroupBy>3</GroupBy>
<QUERY>
Query Statement
</QUERY>
</ROW>
</ROWS>
,所以我使用POST方法来检索上述数据,但在执行的时候我一直在每次虽然得到一个内部服务器错误500 Web上的web服务方法正在检索数据。所以问题是与上面的代码,但我不知道什么。我尝试添加.setConverter(新的SimpleXmlConverter());看完以下网址后: Android Retrofit return status 500 internal server error 但它是一样的。
任何帮助,将不胜感激。
试试这个.....添加.xml
会解决这个问题
public interface TaskService {
@POST("/GetBulkQueryUpdates.xml")
void getWeather(@Body User user,
Callback<String> callback);
}
和UR User
类必须以这种格式
@Root(name = "breakfast_menu")
public class BreakFastMenu
{
@ElementList(inline = true)
List<Food> foodList;
}
@Root(name="food")
public class Food
{
@Element(name = "name")
String name;
@Element(name = "price")
String price;
@Element(name = "description")
String description;
@Element(name = "calories")
String calories;
}
编辑1:
@Root
是一个注释,在你的情况下它应该是@Root(name = "ROWS")
这是ur的根元素XML
谢谢你,我会尝试,但只是一个问题,@Root代表什么? –
检查我的编辑1 –
您确定要将**右键**数据发送到**右键** url吗? – EpicPandaForce
你应该确保你的User类有getter和setter。 – EpicPandaForce