400报错 bad request

vue前端 在使用华为云中的断点续传功能时,服务器就会报错400 bad request,如果转为正常的上传,就没有问题,可以正常上传至华为云,不知道有没有大佬遇见过类似的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果您在使用Java的HTTP客户端或服务器时遇到了“bad request”错误,可能是由于请求或响应头过大,超出了服务器或客户端的最大允许值。这时,您可以通过增加`maxHttpHeaderSize`选项的值来解决这个问题。 在Java中,`maxHttpHeaderSize`选项可以用于设置HTTP请求或响应头的最大字节数。例如,在使用`HttpServer`类创建HTTP服务器时,可以使用以下代码设置`maxHttpHeaderSize`选项: ``` HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); server.setExecutor(null); server.createContext("/", new MyHandler()); server.setExecutor(null); server.setHttpHandler(new HttpHandler() { @Override public void handle(HttpExchange exchange) throws IOException { exchange.getResponseHeaders().add("Content-Type", "text/plain"); exchange.sendResponseHeaders(200, 0); OutputStream os = exchange.getResponseBody(); os.write("Hello World".getBytes()); os.close(); } }); server.setOption("maxHttpHeaderSize", 8192); // 设置最大请求头字节数为8192 server.start(); ``` 如果您使用的是`HttpClient`类创建HTTP客户端,则可以使用以下代码设置`maxHttpHeaderSize`选项: ``` HttpClient client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) .followRedirects(HttpClient.Redirect.NORMAL) .connectTimeout(Duration.ofSeconds(20)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .timeout(Duration.ofSeconds(20)) .header("Content-Type", "application/json") .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); int maxHeaderSize = client.version() == HttpClient.Version.HTTP_2 ? 16384 : 8192; client = client.newBuilder() .version(HttpClient.Version.HTTP_1_1) .followRedirects(HttpClient.Redirect.NORMAL) .connectTimeout(Duration.ofSeconds(20)) .version(HttpClient.Version.HTTP_1_1) .version(HttpClient.Version.HTTP_2) .option(HttpClient.Builder.MAX_RESPONSE_HEADER_SIZE, maxHeaderSize) .build(); ``` 以上是设置`maxHttpHeaderSize`选项的示例代码,希望能对您有所帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值