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

Swift中如何为URLRequest的httpBody设置null值?

解决URLRequest发送JSON格式null请求体的问题

要让DELETE请求成功发送JSON格式的null请求体,必须同时完成两个关键配置:

  • 设置正确的请求头:服务器需要明确请求体的媒体类型,这是解决415错误的核心
  • 生成合法的JSON null数据:确保请求体是标准的JSON格式null

可行代码实现

guard let url = URL(string: "https://my-url.com/other/stuff") else { return nil }
var deleteRequest = URLRequest(url: url)
deleteRequest.httpMethod = "DELETE"

// 核心配置:告知服务器请求体为JSON格式
deleteRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")

// 方式1:通过JSONSerialization生成标准null数据
do {
    deleteRequest.httpBody = try JSONSerialization.data(withJSONObject: NSNull(), options: [])
} catch {
    print("生成null数据失败:\(error)")
    return nil
}

// 方式2:直接构造字符串转Data(更简洁)
// deleteRequest.httpBody = "null".data(using: .utf8)

之前尝试无效的原因

  • 仅设置httpBody为nil/空Data/空字符串:未提供服务器要求的JSON格式请求体
  • 使用"null".data(using: .utf8)但未设置Content-Type:服务器无法识别请求体的JSON类型,因此返回415错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:20:25