有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用ApacheHTTP客户端和SpringREST发送HTTP PUT请求时出现java问题

我开发了一个简单的REST API,它使用Spring Boot 2.3.1提供一个简单的HTTP PUT请求。释放和释放;甲骨文JDK 14。下面是服务器端REST端点:

@Controller
@RequestMapping("/api/documents")
public class DocumentController {

   @PutMapping(value = "/setCurrentTenant", consumes = "multipart/form-data")
    public ResponseEntity<?> setCurrentTenant(
             @RequestParam(value = "documentId", required = false) Long documentId,
             @RequestParam("tenantId") Long tenantId) {
        return documentService.setCurrentTenant(documentId, tenantId);
    }
}

客户端代码:

HttpPut putRequest = new HttpPut("http://localhost:8080/api/document/setCurrentTenant");
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
    
builder.addTextBody("documentId", "1");
builder.addTextBody("tenantId", "10");
HttpEntity setCurrentTenantEntity = entityBuilder.build();
putRequest.setEntity(setCurrentTenantEntity);
httpClient = HttpClients.createDefault();
HttpResponse response = httpClient.execute(putRequest);

我尝试运行代码,一切正常,但当客户端请求发送到服务器时,Spring会记录如下异常:

Resolved [org.springframework.web.bind.MissingServletRequestParameterException:
 Required Long parameter 'tenantId' is not present]

我错过什么了吗


共 (0) 个答案