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

如何使用curl发送带有请求参数的POST-request?

蓝侯林
2023-03-14
host="http://localhost:8080"
$(curl -s -X POST -H "Content-Type: application/json" -d '{"name":"Test", "description":"Test"}' $host/games/new?user_id=c13fb734-c72a-48a0-9fd7-5fbc79c6285a)
@RequestMapping("games")
@RestController
public class GameController {

    private static final String ROOT_URL = ServerConfig.GAMES_HOST + "/games";

    @PostMapping(value = "new")
    public ResponseEntity<String> add(@RequestParam("user_id") UUID userId,
                      @RequestBody String newGame) {
        String url = ROOT_URL + "/new?userId=" + String.valueOf(userId);
        RestTemplate template = new RestTemplate();
        return template.postForEntity(url, newGame, String.class);
    }
}
{"errors":["user_id should be of type java.util.UUID"],"status":"BAD_REQUEST","message":"Failed to convert value of type 'java.lang.String' to required type 'java.util.UUID'; nested exception is java.lang.IllegalArgumentException: Invalid UUID string: new"}

共有1个答案

孟鸿德
2023-03-14

长话短说,概念上,@requestparam@requestbody是互斥的:查询参数(@requestparam)作为请求正文发送。

请参阅此处的其他详细信息:

  • 如何在HTTP POST请求中发送参数?。
  • Spring MVC-为什么不能同时使用@requestbody和@requestparam。
  • 使用postman客户机通过@RequestParam和@RequestBody调用Spring服务。
  • Spring-@requestbody和@requestparam有什么区别?.
    null
 类似资料:
  • 单击from-data或x-www-form-urlencoded 然后在键/值字段上传递两个参数。 ANDROID改装设置 原因是我使用了2个API(webapi和wcf)。我的所有其他响应都是对象数组。[{},{}]但在此呼叫中,我收到了以下信息 但我还是无法解析响应。

  • zendserver 2019.7 php 7.3 apache 2.4 在测试环境中,我通过curl向我的本地服务器发送JSON post请求。当CURLOPT_POSTFIELDS少于1000个字符时,它的脚本被执行,我得到的响应很好。 但是当我增加JSON数组的长度时,同样的脚本会出现404错误。 我已经改变了所有的配置,如post_max_size等,但没有任何效果。 }'; $ URL

  • 我正在使用FastAPI来提供一些ML模型,并且我有一个使用Python 模块的基本UI。 我的服务之一是通过POST请求获得图像,它就像一个魅力。 服务器端 {BASE_URI}/docs提供的卷曲 客户端使用Python请求 一旦我想添加额外的参数,它就变得令人毛骨悚然。例如: 服务器端 curl -- 由 {BASE_URI}/docs 给出 在那之前,一切正常。一旦我想使用Python<c

  • 问题内容: 我不想使用文件,但是只有django才需要发出POST请求。 就像发送请求一样。 问题答案: 结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式: 是用于打开URL的方法。 将参数转换为百分比编码的字符串。

  • 问题内容: 我需要一个简单的代码示例,该示例发送带有从表单输入中获取的post参数的http post请求。我找到了Apache HTTPClient,它具有非常广泛的API和许多复杂的示例,但是我找不到一个简单的示例来发送带有输入参数的http post请求并获取文本响应。 更新: 我对Apache HTTPClient v.4.x感兴趣,因为不推荐使用3.x。 问题答案: 使用Apache H

  • 我在网上找到了这个脚本: 但我不明白如何与PHP一起使用它,也不明白params变量内部的内容是什么,也不明白如何使用它。我能帮个忙吗?