LoopJ AndroidAsyncHttp StringEntity问题

时间:2015-08-07 00:53:50

标签: android android-async-http loopj

我正在使用带有AndroidAsyncHttp的StringEntity但不推荐使用它。是否有另一种方法可以在我以我的Web服务方式发送json字符串时使其工作?

public void getPropertyImagesAsync(final String[] params) {
    JsonStructure jsonStructure = new JsonStructure();
    jsonStructure.methodName = "getPropertyWorkorders";
    jsonStructure.serviceName = "mobileapi";
    jsonStructure.parameters = params;

    String jsonString = new Gson().toJson(jsonStructure);

    StringEntity entity = null;
    try {
        entity = new StringEntity(jsonString);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    AsyncHttpClient client = new AsyncHttpClient();
    client.post(visnetawrap, BASE_URL + "/amf/gateway/?contentType=application/json", entity, "application/json", new TextHttpResponseHandler() {
        @Override
        public void onFailure(int i, Header[] headers, String s, Throwable throwable) {
            AppUtils.outputJsonString(s);
        }

        @Override
        public void onSuccess(int i, Header[] headers, String s) {
            AppUtils.outputJsonString(s);
        }
    });
}

2 个答案:

答案 0 :(得分:0)

密切关注这种情况,但你现在可以继续使用StringEntity

StringEntity实际上是Apache HTTP的一部分,而不是android-async-http。谷歌在SDK 22中弃用了整个Apache HTTP API,并将其从SDK 23(M预览版)中的存根库中删除。据报道它仍在M设备上运行,但你无法编译它。

不幸的是,android-async-http是围绕Apache HTTP设计的。更糟糕的是,它暴露了它对API的使用,因此在不造成破坏的情况下无法更改。开发人员已宣布计划确保持续支持,可能是通过引入对独立Apache HTTP的依赖。

答案 1 :(得分:0)

我建议您使用库进行网络操作。您可以使用Retrofit。它是一个功能强大的库,易于使用。

http://square.github.io/retrofit/