web-dev-qa-db-ja.com

Spring / Postmanコンテンツタイプ「application / octet-stream」はサポートされていません

Postmanを使用して次のリクエストを送信しています: enter image description here

私のコントローラーは次のようになります:

@RestController
@RequestMapping(path = RestPath.CHALLENGE)
public class ChallengeController {

    private final ChallengeService<Challenge> service;

    @Autowired
    public ChallengeController(ChallengeService service) {
        this.service = service;
    }

    @ApiOperation(value = "Creates a new challenge in the system")
    @RequestMapping(method = RequestMethod.POST, consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_OCTET_STREAM_VALUE},
        produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseStatus(HttpStatus.CREATED)
    public ChallengeDto create(@ApiParam(value = "The details of the challenge to create") @RequestPart("challengeCreate") @Valid @NotNull @NotBlank ChallengeCreateDto challengeCreate,
                           @ApiParam(value = "The challenge file") @RequestPart("file") @Valid @NotNull @NotBlank MultipartFile file) {
        return service.create(challengeCreate, file);
    }
}

「消費」を変更してAPPLICATION_OCTET_STREAM_VALUEをMULTIPART_FORM_DATA_VALUEに変更しようとしたところ、それも削除しようとしましたが、どれも役に立ちませんでした。

さらに情報が必要な場合は教えてください。ありがとう。

11
StackJP

Content-Typeはヘッダー設定であり、デフォルトではチェックされておらず、デフォルトでapplication-octet-streamに設定されています。ヘッダーリボンアイテムの下のボックスをチェックするだけです(一度チェックすると、デフォルトでapplication/jsonになります)。 enter image description here

0
John

@Rokin Answerは適切ですが、jsonをファイルに配置してアップロードする必要はありません。コンテンツタイプをjsonオブジェクトに渡すことでも実現できます。 Postmanは、フォームデータの送信時にコンテンツタイプオプションをサポートします。詳細については、以下の自己説明的な画像を参照してください。

enter image description here

0
Irfan Nasim