我使用改造作为我的网络通信界面对worpress网站中包含的php webservice有一些问题 - 在WP网站上调用一个JSON API方法后,即使我在我的Android客户端上获得SSL异常运行http而不是https。
这是我的代码 -
public class RestApi {
private static final String API_URL = "https://tmc.co.nf/api";
private SmokeTalkRest service;
interface SmokeTalkRest {
@FormUrlEncoded
@POST("/get_nonce")
void getNonce(@Field("controller") String controller, @Field("method") String method, Callback<String> callback);
}
public RestApi() {
// Create a very simple REST adapter which points the GitHub API
// endpoint.
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(API_URL).build();
// Create an instance of our GitHub API interface.
service = restAdapter.create(SmokeTalkRest.class);
}
public void getNonceForMethod(Method method, Callback<String> callback) {
service.getNonce("user", method.name(), callback);
}
}
点击按钮时会调用get nonce,有人已经碰到了吗?
答案 0 :(得分:1)
我相信您遇到的问题是您尝试调用改造而不是使用异步版本。回调可能是最容易使用的。
@GET("/user/{id}")
void listUser(@Path("id") int id, Callback<User> cb);
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer("baseURL")
.build();
ClientInterface service = restAdapter.create(ClientInterface.class);
Callback callback = new Callback() {
@Override
public void success(Object o, Response response) {
//do something
}
@Override
public void failure(RetrofitError retrofitError) {
}
};
service.listUser(1, callback);
How to implement an async Callback using Square's Retrofit networking library
Android现在要求您执行任何webrequests异步,否则会出错。
此外,retorfit将为您转换/解析对象,因此您不必这样做。它可以节省创建异步任务和设置解析的时间。在提出请求时,它也提供了一个很好的标准。