- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用仅支持通过 form-data 或 www-form-urlencoded 属性传递 JSON 数据的 REST API。所以,我的问题是,如何使用 HttpUrlConnection 附加多个表单数据项?当我通过浏览器使用 API 时,Chrome 中的请求如下所示:
Form Data
adds:
updates: [{"attributes":{"OBJECTID":2241,"OTHER_FIELD":"500"}}]
deletes:
gdbVersion:
rollbackOnFailure:
f: pjson
但我不知道如何在 Java 中复制它。
这是我到目前为止尝试过的:
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setUseCaches(false);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.addRequestProperty("f", "json");
urlConnection.addRequestProperty("adds", null);
urlConnection.addRequestProperty("updates", "[{\"attributes\":{\"OBJECTID\":2241,\"OTHER_FIELD\":\"500\"}}]");
urlConnection.addRequestProperty("deletes", null);
urlConnection.addRequestProperty("rollbackOnFailure", "true");
urlConnection.addRequestProperty("gdbVersion", null);
但它没有按应有的方式附加数据...
对于那些感兴趣的人,我正在尝试连接到 ArcGIS 要素服务 API,以便我可以添加、更新或删除要素,但这里我使用的是 ApplyEdits
最佳答案
所以我想出了解决办法,这里是解决方案:
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 对该值进行编码。使用这个包含所有表单数据元素的字符串,然后我们将其写入输出流:
final BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream()));
bfw.write(encodedUrl);
bfw.flush();
bfw.close();
然后可以接收并解析响应。
关于Java - 如何通过 HttpUrlConnection 发送表单数据或 www-form-urlencoded 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40666707/
我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源. 它试图解决的问题之一是 Grammatical Numbers .这也称
leetcode关于单数II的题目是: 给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗? 其实我已经从网站上
我想知道创建/命名模型的首选方法是什么? 我的应用程序有一个“用户”模型,其中包含用于创建、获取、更新(等)用户记录的所有相关业务逻辑。 在我的一些 Controller 中,我可能想要获取多个“用户
在我的 Mysql 数据库中,我有一个术语列表,例如(首字母大写,大多数时候是复数) Hairdressers Restaurants Beauty Salons Fournitures For Re
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一个东西存在,您是否将其保持为单数(更直观)或尊重使用复数的决定并保持这种方式? 我们正在用 PHP 为我们的客户门户网站设计一个新的 API
我可能在做一些愚蠢的事情,但是...... 应用/模型/user.rb: class User 然后,当我导航到 /users/123/totem/new 时,出现错误: ActionView::
您能否澄清一些 Matplotlib 术语: “subplots”(或“subplot”?)这个词是“axes”的同义词吗? “轴”和“轴”的单数/复数是什么? 最佳答案 这确实是一个令人困惑的问题。
我有一个 profile我的应用程序中的模型。我想允许用户通过 /profile 查看他们自己的个人资料,所以我创建了这条路线: resource :profile, :only => :show 我
我是一名优秀的程序员,十分优秀!