【发布时间】: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 或类似内容。