curl 命令,用于通过基本身份验证和分段文件上传调用 POST 请求



我正在使用 curl 命令调用以下服务:

@RequestMapping(value = "/api/uploadFile", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<String>> uploadFile(@RequestParam("file") MultipartFile multipartFile, @RequestHeader("Authorization") String authCredentials) {...}

它使用基本身份验证,并且需要将文件上传作为多部分文件。

如何使用 curl 命令调用它?

我正在尝试这个,但收到一个错误,说非法的base64字符:

curl -i -H 'Authorization:Basic username:password' -H 'Accept:application/json'    -F 'file=@./application.properties' http://hostname/api/uploadFile/

错误:

java.lang.IllegalArgumentException: Illegal base64 character 3a
        at java.util.Base64$Decoder.decode0(Base64.java:714) ~[na:1.8.0_121]
        at java.util.Base64$Decoder.decode(Base64.java:526) ~[na:1.8.0_121]
        at java.util.Base64$Decoder.decode(Base64.java:549) ~[na:1.8.0_121]

Authorization: 标头错误。

让 curl 将用户名和密码转换为 HTTP 身份验证标头,而不是使用 -u:

curl -i -u 'username:password' -H 'Accept:application/json' -F 'file=@./application.properties' http://hostname/api/uploadFile/

最新更新