/ / Curl-Befehl zum Aufrufen einer POST-Anfrage mit einfacher Authentifizierung und mehrteiligem Datei-Upload - Curl, Post, Multipartform-Daten, Basis-Authentifizierung

Curl-Befehl zum Aufrufen einer POST-Anfrage mit einfacher Authentifizierung und mehrteiligem Datei-Upload - Curl-, Post-, Multipartform-Daten, Basis-Authentifizierung

Ich rufe den folgenden Dienst mit einem curl-Befehl auf:

@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) {...}

Es verwendet die Standardauthentifizierung und Dateiupload wird als mehrteilige Datei benötigt.

Wie rufe ich dies mit einem Curl-Befehl auf?

Ich versuche das, aber ich bekomme einen Fehler, der besagt, dass der illegale Base64-Charakter:

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

Error:

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]

Antworten:

1 für die Antwort № 1

Das Authorization: Header ist falsch.

Lassen Sie cur den Benutzernamen und das Passwort in einen HTTP-Authentifizierungsheader konvertieren anstatt mit -u:

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