当前位置: 首页 > article >正文

java http body的格式 ‌application/x-www-form-urlencoded‌不支持文件上传

在Java中,HTTP请求的body部分可以包含多种格式的数据,主要包括以下几种‌:

‌application/x-www-form-urlencoded‌:这种格式将数据编码成键值对的形式,键和值都进行了URL编码,键值对之间用&符号连接。例如:name=John&age=30。这种格式通常用于表单数据的提交,但不支持文件传输‌12。

‌multipart/form-data‌:这种格式主要用于上传文件。它将表单数据处理成一条消息,以标签为单元,用分隔符分开。当上传的字段是文件时,会有Content-Type来说明文件类型。例如:Content-Disposition: form-data; name="file"; filename="example.txt"‌12。

‌application/json‌:这种格式用于传输JSON数据。在HTTP请求的body中,可以通过设置Content-Type为application/json来指定使用JSON格式。例如:{"name": "John", "age": 30}。这种格式常用于API调用,因为它支持复杂的数据结构‌12。

‌raw‌:这种格式允许用户选择文本类型,如text/plain、application/javascript、application/xml等。例如,选择text/plain时,body中的内容就是纯文本‌1。

‌binary‌:这种格式通常用于上传二进制数据,如图片、音频等。它没有键值对,一次只能上传一个文件‌1。

示例代码

以下是一个使用Java进行HTTP POST请求的示例,其中包含JSON格式的body参数:

import java.net.HttpURLConnection;
import java.net.URL;

public static String httpPost(String serverURL, String params) {
    HttpURLConnection connection = null;
    try {
        URL url = new URL(serverURL);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/json;charset=\"UTF-8\"");
        connection.setDoOutput(true);
        connection.connect();
        try (OutputStream os = connection.getOutputStream()) {
            byte[] outputBytes = params.getBytes("utf-8");
            os.write(outputBytes);
            os.flush();
        }
        InputStream is = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
        StringBuilder response = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        return response.toString();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (connection != null) {
            connection.disconnect();
        }
    }
    return null;
}

这段代码展示了如何使用Java进行HTTP POST请求,并发送JSON格式的body参数‌


http://www.kler.cn/a/405806.html

相关文章:

  • JAVA后端如何调用百度的身份证识别API
  • win10右键文件卡顿解决
  • 《数字图像处理基础》学习06-图像几何变换之最邻近插值法缩小图像
  • reactflow 中 useStoreApi 模块作用
  • 「三」体验HarmonyOS端云一体化开发模板——使用DevEco Studio直接创建端云一体化工程
  • Kafka Offset 自动提交和手动提交 - 漏消费与重复消费
  • 【C#设计模式(13)——代理模式(Proxy Pattern)】
  • vue生命周期 (创建阶段 | 挂载阶段 | 更新阶段 | 销毁阶段 )
  • http 流量接入 Dubbo 后端服务
  • 系统调用介绍
  • 资源控制器--laravel进阶篇
  • 我的创作纪念日——创作懿佰贰拾捌天
  • 什么是事务?事务有哪些特性?
  • CSS3_BFC(十二)
  • 医药企业的终端市场营销策略
  • HTTP keep-alive和TCP keepalive详解
  • npm/cnpm的使用
  • Day24 回溯算法part03
  • 什么是AOT技术?Java语言不同类型的JIT或AOT编译器?
  • android 实现答题功能
  • 046 购物车
  • Go语言基本类型转换
  • git使用(一)
  • 金融数据中心容灾“大咖说” | 美创科技赋能“灾备一体化”建设
  • STM32 ADC 读取模拟量
  • GitLab|数据迁移