【发布时间】:2015-06-26 13:33:28
【问题描述】:
在将数据发布到服务器 URL 时,我一直在尝试在 HTTP 标头中实现自定义请求方法。 我的应用程序特定 URL 接受 -X 参数和 -d 数据。 基本上,我正在尝试使用运行正常的 CURL 命令将 JSON 数据转储到我的流入数据库中。但问题是,如果我用正确的方法在 java 中实现相同的功能,它就不受支持或无法正常工作。
我的 CURL 命令是:
curl -X POST -d 'my_json_data' 'my_url'
如何使用 HttpUrlConnection 或其他可用方法(即 Apache 客户端服务)在 java 中实现相同的功能。
【问题讨论】:
-
“自定义请求方法”是什么意思?你的 curl 命令是一个常规的 POST 请求。
-
根据 CURL 文档, -X is "(HTTP) 指定与 HTTP 服务器通信时使用的自定义请求方法。将使用指定的请求而不是其他使用的方法(默认为GET). " 我的服务器使用 -X 选项和 -d 接受数据。
-
您误解了 curl 文档。 -d 设置 http post 请求的数据,因此 curl 将自动创建 post 请求(如果已设置)。 -X 允许您将请求方法(即标头值)设置为不同的值。但是既然你把它设置为 POST 它当然仍然是一个 post 请求。
-
“我的服务器使用 -X 选项和 -d 接受数据”是什么意思。我对你试图做这样的事情感到不好:
http://my_url?X=POST&d=my_json_data -
没有。我要做的是 curl -X POST -d "mydata" "myurl" ,这是我需要遵循的格式,将我的 JSON 数据直接转储到 influxdb 中。
标签: java curl httprequest