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

如何将curl命令转换为Android Java中可用的HttpURLConnection请求代码

实现方案

前置准备

  • 在AndroidManifest.xml中添加网络权限:<uses-permission android:name="android.permission.INTERNET" />
  • 所有网络请求必须在子线程中执行,不能直接写在主线程中,否则会抛出NetworkOnMainThreadException异常

对应curl请求的HttpURLConnection实现代码

// 替换为你自己的实际API密钥
private static final String API_KEY = "你的实际API_KEY";

public void sendCurlRequest() throws Exception {
    String stringURL = "https://www.website.com/api/a/page";
    URL url = new URL(stringURL);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    try {
        // 对应curl的 -X GET,设置请求方法为GET
        urlConnection.setRequestMethod("GET");
        // 对应curl的 -H "Authorization: Bearer API_KEY",添加鉴权请求头
        urlConnection.setRequestProperty("Authorization", "Bearer " + API_KEY);
        // 对应curl的 -H "Content-Type: application/json",添加内容类型请求头
        urlConnection.setRequestProperty("Content-Type", "application/json");
        
        // 可按需设置超时时间,单位为毫秒
        urlConnection.setConnectTimeout(15000);
        urlConnection.setReadTimeout(15000);

        // 获取接口返回数据流
        InputStream in = new BufferedInputStream(urlConnection.getInputStream());
        // 以下是将流转为字符串的示例代码,可根据需求自行调整
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder result = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            result.append(line);
        }
        // responseStr即为接口返回的完整响应内容
        String responseStr = result.toString();
    } finally {
        // 请求完成后必须关闭连接,避免资源泄漏
        urlConnection.disconnect();
    }
}

扩展:POST类型curl请求转换方案

如果后续需要转换POST类型的curl请求,只需调整以下配置即可:

  1. 将urlConnection.setRequestMethod("GET")改为urlConnection.setRequestMethod("POST")
  2. 添加配置urlConnection.setDoOutput(true)
  3. 把POST请求体写入连接的输出流,示例如下:
// 替换为你自己的实际请求体内容
String postBody = "{\"name\":\"test\",\"id\":1}";
OutputStream os = urlConnection.getOutputStream();
os.write(postBody.getBytes(StandardCharsets.UTF_8));
os.flush();
os.close();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:54:02