You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何通过POST请求向https://0x0.st上传文件?技术求助

Java实现向https://0x0.st发送POST请求上传文件

依赖准备

首先确保项目引入Apache HttpClient相关依赖,Maven可在pom.xml中添加:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5.14</version>
</dependency>

完整代码实现

你已完成Multipart请求实体的核心构建,以下是补充HttpClient初始化、请求发送及响应处理的完整逻辑:

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.File;
import java.io.IOException;

public class FileUploader {
    public static void main(String[] args) {
        // 替换为实际业务参数
        String key = "your_key_here";
        String client_id = "your_client_id_here";
        String direction_id = "your_direction_id_here";
        File file = new File("path/to/your/image.jpg");

        // 创建HttpClient实例,用try-with-resources自动释放资源
        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            HttpPost httpPost = new HttpPost("https://0x0.st");

            // 复用你编写的Multipart实体构建逻辑
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.addTextBody("key", key);
            builder.addTextBody("client_id", client_id);
            builder.addTextBody("direction_id", direction_id);

            ContentType fileContentType = ContentType.create("image/jpeg");
            String fileName = file.getName();
            builder.addBinaryBody("client_files", file, fileContentType, fileName);

            HttpEntity entity = builder.build();
            httpPost.setEntity(entity);

            // 发送请求并解析响应
            try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
                HttpEntity responseEntity = response.getEntity();
                if (responseEntity != null) {
                    String responseBody = EntityUtils.toString(responseEntity);
                    System.out.println("上传结果:" + responseBody);
                }
                EntityUtils.consume(responseEntity);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

关键注意事项

  • 字段名校验:若使用0x0.st官方默认上传接口,文件字段应为file而非client_files,如果是自定义业务字段,请确保服务端对应配置匹配,否则会导致上传失败。
  • 资源管理:必须确保HttpClient、HttpResponse等资源被正确关闭,示例中使用try-with-resources语法自动完成资源释放。
  • 类型匹配:设置的ContentType需与文件实际类型一致,避免服务端解析错误。
  • 异常处理:实际业务中建议细化异常捕获逻辑,区分网络异常、服务端错误等场景做针对性处理。

内容的提问来源于stack exchange,提问作者CarryLove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:16:38