JAVA 中的 CURL - 无法解析主机:POST

CURL in JAVA - Could not resolve host : POST

通过为 Windows 安装 curl,我已经能够在我的 Windows PC 中从 CMD 成功执行 CURL 命令。同样,通过使用 ProcessBuilder 和 Process 创建操作系统进程,我已经能够让它们在我的 JAVA 应用程序中工作。特别是,我需要执行此处给出的 KissFlow 中使用的 REST API 端点命令:https://support.kissflow.com/support/solutions/articles/179582-understanding-the-rest-api-end-points

问题:我已经能够像这样使用GET方法执行命令了。 ProcessBuilder pb = new ProcessBuilder("curl","-H","api_key:<XXXX>","-X","GET","http://<XXXX>.appspot.com/api/1/Employee/list/p1/50

但是,当使用带有 POST 的命令时,例如 ProcessBuilder pb = new ProcessBuilder("curl","-H","api_key:<XXXX>","-X ","POST","--data-urlencode","First Name=XXXX","http://<XXXX>.appspot.com/api/1/Employee/submit");,我得到一个错误: curl: (6) 无法解析主机: POST 随着进程的输入流返回 <html><title>Error 400 (Bad Request)!!1</title></html>

这实际上在从 CMD 执行时完美运行。

我在这里尝试了所有相关问题的建议。任何帮助表示赞赏。谢谢。

编辑:CURL 的任何替代方法都可以接受。

根据@GyroGearless 的想法,尝试使用下面的示例代码通过 GET 方法和 POST 使用 Apache 的 HttpClient class 从 URL 中检索响应。我认为使用 HttpClient 你会比使用 CURL "power" 多得多。

你需要 commons-httpclient.jar 及其依赖项:commons-codeccommons -记录。您会在 http://commons.apache.org/downloads/

找到这些罐子
(...)
String url = "http://<XXXX>.appspot.com/api/1/Employee/list/p1/50";
HttpClient client = new HttpClient();
GetMethod get = new GetMethod(url);
client.executeMethod(get);
System.out.println(new String(get.getResponseBody()));
get.releaseConnection();

url = "http://<XXXX>.appspot.com/api/1/Employee/submit";
PostMethod post = new PostMethod(url);
post.addParameter("id", "10");
client.executeMethod(post);
System.out.println(new String(post.getResponseBody()));
post.releaseConnection();
(...)

如您所见,在 PostMethod 部分,我们在请求中发送参数。也许你不需要这个....

您也可以使用 Visual studio,我们还创建了一个 post 方法来拒绝 kissflow 中的请求。只是让您知道您也可以在 visual studio.

中执行此操作