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

如何在Android Studio中调用AnonFiles API实现无WebView文件上传

Android Studio 实现AnonFiles文件上传方案

1. 前置准备:添加依赖和权限

首先引入常用网络请求库OkHttp,在模块级build.gradle的dependencies块中添加:

dependencies {
    // 版本可以替换为最新稳定版
    implementation 'com.squareup.okhttp3:okhttp:4.11.0'
}

然后在AndroidManifest.xml中添加必要权限:

<!-- 网络请求权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 读取本地文件权限,根据系统版本适配 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

2. 核心上传代码实现

完全对应你给出的curl和表单参数,采用Multipart表单提交的方式实现,无需依赖WebView:

import okhttp3.*;
import java.io.File;
import java.io.IOException;

public class AnonFilesUploader {
    private static final String UPLOAD_URL = "https://api.anonfiles.com/upload";
    private final OkHttpClient httpClient = new OkHttpClient();

    public void uploadFile(File localFile) {
        // 构造Multipart表单,和HTML表单参数完全对应
        MultipartBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                // 对应表单里的隐藏参数MAX_FILE_SIZE,值可根据需要调整
                .addFormDataPart("MAX_FILE_SIZE", "30000000") // 这里按你需求改大小,示例是30M
                // 对应表单里的file字段,第一个参数是字段名,第二个是文件名,第三个是文件的RequestBody
                .addFormDataPart("file", localFile.getName(),
                        RequestBody.create(localFile, MediaType.parse("application/octet-stream")))
                .build();

        // 构造POST请求
        Request request = new Request.Builder()
                .url(UPLOAD_URL)
                .post(requestBody)
                .build();

        // 异步执行请求,避免阻塞主线程
        httpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                // 上传失败处理,比如打印错误、提示用户
                e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    // 上传成功,AnonFiles会返回JSON格式的结果,包含文件访问链接
                    String responseJson = response.body().string();
                    // 后续可以自行解析JSON获取文件链接
                } else {
                    // 接口返回错误处理
                }
            }
        });
    }
}

3. 调用示例

你拿到要上传的本地File对象后,直接调用方法即可:

// 替换为你要上传的本地文件路径对应的File对象
File uploadFile = new File("/storage/emulated/0/Download/test.txt");
new AnonFilesUploader().uploadFile(uploadFile);

注意事项

  • 网络请求不能在主线程执行,上面的示例已经用了OkHttp的异步enqueue方法,不需要额外开子线程
  • Android 13及以上版本需要动态申请媒体文件读取权限,获取权限后才能访问本地文件
  • AnonFiles的API有文件大小限制,免费用户单文件最大不超过20G,返回的JSON结果中包含error字段时代表上传失败,可以读取对应错误信息排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:04