【问题标题】:How can I send a JSON body with AsyncHttpClient?如何使用 AsyncHttpClient 发送 JSON 正文?
【发布时间】:2019-03-12 06:47:24
【问题描述】:

我正在使用AsyncHttpClient 库从一个非常基本的 Android 应用程序发出 HTTP 请求。现在,我只需要使用 JSON 主体发出 POST 请求(这是一个强制性约束,因为我必须使用 REST 服务使用包含用户名和密码的期望请求)。

对 Android 开发和相关库了解不多,我尝试向 Google 发出一个简单的 GET 请求,并且效果很好。然后,我尝试切换到 POST 请求,但从文档看来,post 方法严格需要 RequestParams 参数。 我真的需要发送一个JSON:有没有办法用AsyncHttpClient 这样做?我尝试了几种在 Web 和 StackOverflow 上都找到的解决方案,但遗憾的是没有一个有效。

最后,作为最后的机会,我愿意切换库(并且也欢迎向这个方向提出建议 - 至少如果它们像 AsyncHttpClient 那样易于使用,考虑到我的经验) ,但我更愿意坚持我目前的选择。

感谢您的帮助。

【问题讨论】:

    标签: java android json post asynchttpclient


    【解决方案1】:

    首先,我建议你使用改造库,它简单、有用且可爱
    但是现在,我们应该知道您是如何发帖的,
    例如,您是否对此进行测试:

    private static AsyncHttpClient client = new AsyncHttpClient();
    RequestParams params = new RequestParams();
    params.put("param1", "Test"); 
    client.post(Url, params, responseHandler);
    JSONObject jsonParams = new JSONObject();
    jsonParams.put("param1", "Test");
    StringEntity entity = new StringEntity(jsonParams.toString());
    client.post(context, Url, entity, "application/json",responseHandler);
    

    【讨论】:

    • 您的解决方案非常接近我最终采用并且有效的解决方案。无论如何,要使其正常工作,必须包含 cz.msebera.android.httpclient.entity.StringEntity:如果您从另一个库导入 StringEntity,它将与声明的 post 方法的签名不匹配通过 AsyncHttpClient (这就是为什么它对我不起作用的原因)。
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2022-10-15
    • 1970-01-01
    • 2018-09-04
    • 2020-05-23
    • 2019-09-15
    • 2021-02-11
    • 2017-06-05
    相关资源
    最近更新 更多