我正在尝试使用仅支持通过表单数据或www-form-urlencoded属性传递JSON数据的REST API。所以,我的问题是,我如何使用HttpUrlConnection附加多个表单数据项?
如何解决这一点,这里是解决方案:
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
首先设置请求是一个POST请求和将有一些输出
StringBuilder encodedUrl = new StringBuilder("adds=" + URLEncoder.encode("[{\"attributes\":{\"OBJECTID\":2241,\"MAXIMOID_PRE\":\"HYD\"}}]", "UTF-8"));
encodedUrl.append("&updates=" + URLEncoder.encode("", "UTF-8"));
encodedUrl.append("&deletes=" + URLEncoder.encode("", "UTF-8"));
encodedUrl.append("&f=" + URLEncoder.encode("json", "UTF-8"));
encodedUrl.append("&rollbackOnFailure=" + URLEncoder.encode("true", "UTF-8"));
encodedUrl.append("&gdbVersion=" + URLEncoder.encode("", "UTF-8"));
这是如何各形状数据值的获取设置。每个键值都只是一个java字符串,然后使用URLEncoder.encode对值进行编码。使用此字符串,具有所有形式的数据元素,我们然后将其写入的OutputStream:
final BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream()));
bfw.write(encodedUrl);
bfw.flush();
bfw.close();
那之后的响应可以接收并解析出。
java发送http请求4种方式。我用的第一种:链接