我是Retrofit的新手.我使用过Volley,我有点喜欢Retrofit.当我在尝试POST 时遇到这个非描述性的错误消息时,我正准备选择Retrofit .
Exception in thread "main" retrofit.RetrofitError
at retrofit.RetrofitError.httpError(RetrofitError.java:37)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:413)
at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:282)
at myapi.api.$Proxy7.logon(Unknown Source)
at myapi.api.TestDriver.main(TestDriver.java:94)
Run Code Online (Sandbox Code Playgroud)
好吧,我必须说这种类型的错误信息与撒哈拉沙漠中的一件温暖夹克一样有用.
有没有人知道从哪里开始调试这种类型的消息?我真的不想委托一个没有提供有用错误消息的REST api.
我需要知道如何在改造中添加授权cookie头.我已经看过使用请求截取等的建议.以下是我正在尝试的,但这是正确的吗?首先,我已经需要一个RequestAdatper来第一次获取会话ID.这只能由请求适配器的构建器设置.但我需要提出一个请求才能获得会话ID.我需要两个休息适配器,一个用于获取sessionId,另一个用于获取它之后.我真正需要的是一个适配器上的方法,在我得到它之后设置cookie,但它似乎不是这样的方法.这变得很尴尬.如何在改造中设置授权cookie?我在常见问题解答或教程中没有看到这一点.
RequestInterceptor requestInterceptor = new RequestInterceptor()
{
@Override
public void intercept(RequestFacade request) {
request.addHeader("Set-Cookie", "sessionId="+sessionIdentifier);
}
};
RestAdapter.Builder().setServer(serverURL)..setRequestIntercepter(requestIntercepter).build();
// but I don't have sessionId when this is first issued ???
Run Code Online (Sandbox Code Playgroud) 我不清楚在Android中应该保留Refrofit适配器和API类的位置?我应该使用Application类还是Singleton来保存适配器?API接口类怎么样?
RestAdapter myRestAdapter; // where should I keep this guy?
MyAPI mApi = myRestAdapter.create(MyAPI.class); // and how about this guy?
Run Code Online (Sandbox Code Playgroud)
我有一些不同的api,比如MyApi1,MyApi2,可以在app中的不同点调用内部片段.
谢谢