我正在使用带有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);
}
});
}
答案 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。它是一个功能强大的库,易于使用。