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

HTTP PUT请求报415 Unsupported Media Type错误排查求助

Flutter PUT请求更新用户资料返回415 Unsupported Media Type 解决方案

415错误的核心原因是请求未指定Content-Type: application/json请求头——虽然你用jsonEncode()把数据转成了JSON字符串,但服务器无法识别请求体的格式,所以返回“不支持的媒体类型”错误。

修复方法

在PUT请求的headers中添加Content-Type字段,明确告诉服务器请求体是JSON格式:

Future<bool> updateProfile(UpdateProfileModel data, String token) async {
  Map<String, dynamic> profData = {
    "nickname": data.nickname,
    "firstname": data.firstname,
    "lastname": data.lastname,
    "middlename": data.middlename,
    "aboutMe": data.aboutMe,
    "dateOfBirth": data.dateOfBirth,
    "showDateOfBirth": data.showDateOfBirth,
    "gender": data.gender,
    "regionId": data.regionId,
    "telegram": data.telegram,
    "instagram": data.instagram,
    "facebook": data.facebook,
    "linkedin": data.linkedin,
    "picture": data.picture
  };

  try {
    String tok = 'Bearer $token';
    Response response = await put(
      Uri.parse(AppUrl.updateProfile),
      body: jsonEncode(profData),
      // 新增Content-Type请求头
      headers: {
        'Authorization': tok,
        'Content-Type': 'application/json'
      },
    );
    print(token);
    print(jsonEncode(profData));

    print(response.statusCode);
    if (response.statusCode == 200) {
      final Map<String, dynamic> responseData = json.decode(response.body);
      print(response.body);
      return responseData['succeeded'];
    } else {
      return false;
    }
  } catch (e) {
    return false;
  }
}

额外验证

你提供的请求体JSON格式是合法的,无需修改:

{"nickname":"john","firstname":"Zhan","lastname":"Tuleu","middlename":null,"aboutMe":"strinasdasdasd","dateOfBirth":"2022-07-21T21:50:52.753","showDateOfBirth":true,"gender":1,"regionId":1,"telegram":"string","instagram":"string","facebook":"string","linkedin":"string","picture":null}

如果添加Content-Type后仍有问题,可以进一步检查dateOfBirth的格式是否完全匹配服务器的要求,但当前415错误的直接诱因就是缺少该请求头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:27:35