当前位置: 首页 > 知识库问答 >
问题:

CURL REST命令在java,标头已指定但仍收到415不支持的媒体类型

钱修雅
2023-03-14

我试图通过使用Java Process Runtime发送CURL命令来发送REST请求,代码如下:

Process p = Runtime.getRuntime().exec("curl -i --user user_name:password -H \"Content-Type: application/json\" -X PUT url_without_quote -d @/home/user_name/put_content.json");  

但是,我收到了415不支持的媒体类型,即使指定了标头。我在终端中尝试了上面的命令,它在200返回代码下运行良好。我还尝试了在curl命令中使用相同选项的GET请求,其中没有PUT请求的-d内容,它返回200和GET正确的响应内容。

奇怪的是,同一个命令在终端中工作,但在运行代码的java进程中失败。

您是否遇到过相同的问题或有任何解决方案?

我怀疑是否需要为PUT-REST请求指定一些额外的头,或者“Content-Type:application/json”的字符大小写是否重要?

共有1个答案

松德曜
2023-03-14

经过一些试验,以下作品:

Process p = Runtime.getRuntime().exec("curl -i --user user_name:password -H Content-Type:application/json -X PUT url_without_quote -d @/home/user_name/put_content.json");

从其他讨论中,它建议应用程序应该遵循没有任何空格字符的“:”字符,并且双引号不需要指定。

这对我来说很好!感谢以上评论!

 类似资料:
  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题

  • 我试图使用BlueJeans API来创建一个客户端应用程序,https://github.com/bluejeans/api-rest-meetings/blob/master/libs/python/docs/ApplicationApi.md#create_client_application.我已经获得了一个客户端ID和秘密以及用户ID,并将它们保存在我的Django设置中。我还编写了一个