【问题标题】:How to HTTP POST parameters with Android/Java?如何使用 Android/Java HTTP POST 参数?
【发布时间】:2018-12-26 20:53:00
【问题描述】:

我正在努力寻找有关如何使用 Java 将键值对发布到 URL 的好示例。

这是 Android 文档所说的(以及几乎所有其他示例):

URL url = new URL(params[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

try {
    urlConnection.setDoOutput(true);
    urlConnection.setChunkedStreamingMode(0);

    OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
    writeStream(out);

    InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    readStream(in);

} finally {
    urlConnection.disconnect();
}

如何实现writeStream

许多其他 POST 示例将参数放在 URL 中 (a=1&b=2&c=3...),但我可以只使用 GET (?)。而且我不想将参数放在 URL 中,因为这会增加敏感信息被记录到服务器端的机会。

Chrome POST 数据是这样的(正文):

------WebKitFormBoundaryyr0AtYZxcOCCp7hA
Content-Disposition: form-data; name="parameterNameHere"

valueHere
------WebKitFormBoundaryyr0AtYZxcOCCp7hA--

Android 框架是否支持此功能? 如果没有,有什么好的库吗?

编辑:

这不是 suggested 的重复。所建议的内容绝不会回答这个问题,因为它没有显示如何使用参数发布,这就是这个问题的意义所在。

【问题讨论】:

  • @sfat 不是重复的。如果您阅读了我的问题,您肯定会看到我想发布参数。
  • And I don't want to place the parameters in the URL because that increases the chance of sensitive information to be logged on the server side. 然后将它们放入请求正文中。我不明白你所说的post parameters 是什么意思。在给定的 url 中,它在 body 中传递
  • 是的,我想将它们放在请求正文中。我的问题是:我该怎么做?在给定的 url 中,只有数据。不是参数。
  • journaldev.com/13629/… 我想说不要使用HttpURLConnection。在与 HTTP 交互方面,它的级别相当低。使用示例中的内容,如 OkHttp 或类似内容。

标签: java android http post


【解决方案1】:

有许多库可以帮助您实现这一目标。我使用最多的库之一是 OkHTTP。将此库包含在您的 gradle 中,并查看来自“mauker”的帖子以获取有关如何发布的示例

How to use OKHTTP to make a post request?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多