在改造中获得SSL异常

时间:2014-04-15 16:40:11

标签: android wordpress webservice-client retrofit

我使用改造作为我的网络通信界面对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,有人已经碰到了吗?

1 个答案:

答案 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将为您转换/解析对象,因此您不必这样做。它可以节省创建异步任务和设置解析的时间。在提出请求时,它也提供了一个很好的标准。