- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想通过 Apache HttpClient 向 Octoprint API 发送一个 POST 请求,如下所示:http://docs.octoprint.org/en/master/api/job.html#issue-a-job-command (例如开始工作)。我已经阅读了两者的文档,但仍然得到“Bad Request”作为答案。
尝试了其他几个 Post 请求,但从未得到其他东西。猜猜我以某种方式写错了请求。
CloseableHttpClient posterClient = HttpClients.createDefault();
HttpPost post = new HttpPost("http://localhost:5000/api/job");
post.setHeader("Host", "http://localhost:5000");
post.setHeader("Content-type", "application/json");
post.setHeader("X-Api-Key", "020368233D624EEE8029991AE80A729B");
List<NameValuePair> content = new ArrayList<NameValuePair>();
content.add(new BasicNameValuePair("command", "start"));
post.setEntity(new UrlEncodedFormEntity(content));
CloseableHttpResponse answer = posterClient.execute(post);
System.out.println(answer.getStatusLine());
最佳答案
可能内容类型有误。根据文档 here ,期望主体采用 JSON 格式。另一方面,您的代码根据这段代码使用 application/x-www-form-urlencoded post.setEntity(new UrlEncodedFormEntity(content));
快速修复,进行以下更改并尝试:
String json= "{\"command\":\"start\"}";
//This will change change you BasicNameValuePair to an Entity with the correct Content Type
StringEntity entity = new StringEntity(json,ContentType.APPLICATION_JSON);
//Now you just set it to the body of your post
post.setEntity(entity);
您可能想要查看您是如何创建帖子内容的。以上只是为了让您检查问题是否确实与内容类型有关。
让我们知道结果。
关于java - 如何用 Java 向 Octoprint 发送 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57207309/
我正在使用 Octoprint Javascript API ( http://docs.octoprint.org/en/master/jsclientlib/index.html ) 制作一个仪表
我想做的是使用 OctoPrint Rest API。但是,当我尝试执行需要命令的 POST 请求时,我不断遇到错误。这是文档中的一个示例。 POST /api/connection HTTP/1.1
背景 规范: OctoPrint 1.3.4 (master branch) Apache/2.4.10 (Debian) using mod_proxy 我正在尝试在我的 Apache 服务器上运行
我想通过 Apache HttpClient 向 Octoprint API 发送一个 POST 请求,如下所示:http://docs.octoprint.org/en/master/api/job
我一直试图在 swift iOS 应用程序中使用 Alamofire 创建一个将文件 (STL) 上传到 Octoprint API 的函数。我的所有其他 API 函数都运行良好,因此我假设我的上传问
我是一名优秀的程序员,十分优秀!