![](/img/trans.png)
[英]Send JSON body in HTTP GET request in java/spring boot
[英]Java Spring MVC - Send JSON request body error
我正在嘗試將JSON字符串作為請求發送到我的應用程序。 這是我的代碼:
@RequestMapping(
value = "/mylink/upload",
method = RequestMethod.POST,
consumes ="application/json",
produces = "application/json")
public
@ResponseBody
List<Upload> upload(
@RequestParam(value = "hdfsLocation") String hdfsLocation
) throws Exception {
return S3HdfsTransfer.uploadFromHDFS(hdfsLocation);
}
我正在嘗試向郵遞員發送請求。 我使用的方法是POST,標頭包含:接受“ application / json”,Content-Type“ application / json”,請求正文如下:
{
"hdfsLocation" : "hdfs://145.160.10.10:8020"
}
這是我得到的回應。 如果將參數放在URL中,它將起作用。
{
"httpStatus": 500,
"appErrorId": 0,
"message": "Required String parameter 'hdfsLocation' is not present",
"trackingId": "8c6d45fd-2da5-47ea-a213-3d4ea5764681"
}
知道我在做什么錯嗎?
謝謝,塞爾班
它不是@RequestBody
而不是@RequestParam
嗎? 另外,即使使用@RequestBody
,整個JSON字符串: { "hdfsLocation" : "hdfs://145.160.10.10:8020" }
仍將是String hdfsLocation
的值,而不僅僅是hdfs url。 因此,您將必須自己對JSON進行JSON解析,以僅獲取hdfs網址。
看起來您已經將@RequestBody
與@RequestParam
混淆了。 請執行以下任一操作:
將請求參數作為請求參數(而不是作為主體)傳遞。 像(編碼)
將@RequestParam
替換為@RequestBody
。 如果要發送正文,請不要將其與請求參數一起發送。 那是兩件事。
我想你看過了:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.