如何将 url 作为休息服务传递?

问题描述 投票:0回答:2

我正在尝试在 Spring Boot 中构建一个休息服务来更新我的数据库..

 @RequestMapping(value = "/setrepacking/{transaction_number}/{image_url}", method = RequestMethod.GET)
   public String setRepackingDetails(@PathVariable String transaction_number,
                                     @PathVariable  String image_url) {

    dao.setRepackingDetails(transaction_number, image_url);
    return "Updated repacking details for "+transaction_number;
   }

但是我的 image_url 如下所示:我想将下面作为其余组件的一部分传递

http://xxxx.com/api/images/get?format=src&type=png

我正在尝试如下所示:

`www.localhost:8080/setrepacking/3500574684/http://thecatapi.com/api/images`/get?format=src&type=png

不接受...

如何在浏览器中传递参数??
应用任何快速解决方案......

spring rest spring-mvc spring-boot
2个回答
1
投票

您必须先对图像 URL 路径变量进行 URL 编码,然后再将其传递到请求中,编码后的 URL 如下所示:

http%3A%2F%2Fxxxx.com%2Fapi%2Fimages%2Fget%3Fformat%3Dsrc%26type%3Dpng

所以你的请求必须是这样的:

http://localhost:8080/setrepacking/3500574684/http%3A%2F%2Fxxxx.com%2Fapi%2Fimages%2Fget%3Fformat%3Dsrc%26type%3Dpng

这样您就可以正确获取图片 URL。另请查看 URLEncoderURLDecoder


0
投票

您使用 transactionNumber 和 imageUrl 属性创建一个新类或记录:

@AllArgsConstructor
public class PackingDetail {
    private final String transactionNumber;
    private final String imageUrl;
}

然后是一个 PUT 请求,您可以将此对象作为请求正文发送:

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@PutMapping("/api/repackings")
public void repacking(@RequestBody PackingDetail packingDetail) {   
    yourService.repacking(packingDetail);        
}
© www.soinside.com 2019 - 2024. All rights reserved.