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

使用URLSession发起POST请求返回错误码999,求排查问题

排查URLSession POST请求返回未知错误的问题

咱们先从最显眼的地方排查起,你这段代码里有几个很容易忽略的问题,大概率是它们导致了服务器返回的{"isError":true,"ErrorMessage":"Unknown Error Occured","Result":{},"ErrorCode":999}错误:

1. URL格式错误(最可能的元凶)

你的请求URL写的是:

let url = URL(string: "http://192.168.1.21.2/FeatureRequestComponent/FeatureRequestComponentAPI")!

这里的IP地址部分192.168.1.21.2是无效格式——合法的IPv4地址是四段数字,你这里多了一个点。你需要根据实际服务器地址修正它:

  • 如果服务器IP是192.168.1.212,改成:
    let url = URL(string: "http://192.168.1.212/FeatureRequestComponent/FeatureRequestComponentAPI")!
    
  • 如果服务器IP是192.168.1.21,端口是2,要用冒号分隔IP和端口(不是点):
    let url = URL(string: "http://192.168.1.21:2/FeatureRequestComponent/FeatureRequestComponentAPI")!
    

这个错误会导致请求根本无法正确发送到目标服务器,直接触发服务器端的未知错误逻辑。

2. 参数类型的潜在隐患

你定义的参数是[String: Any],当把value转成字符串时("\(value)"),虽然当前参数都是字符串类型,但如果后续新增数字、布尔等类型的参数,会导致编码结果不符合服务器预期。建议直接把参数定义成[String: String],让类型更安全:

let parameters: [String: String] = [
    "AppID": "67B10F42-A372-4D4B-B630-5933E3F7FD65",
    "FeatureTitle": "ABCD",
    "UserName": "Ayaz",
    "UserEmail": self.userEmailTextfield.text ?? "",
    "Priority":"H",
    "Description": self.featureDescriptionTextView.text ?? "",
    "UseCase": self.useCaseTextView.text ?? "",
    "DeviceType" : "iPhone"
]

3. 调试建议

如果修正URL后还是出现错误,可以通过以下方式进一步排查:

  • 打印编码后的请求体,确认参数格式是否正确:
    if let bodyString = String(data: request.httpBody!, encoding: .utf8) {
        print("Encoded body: \(bodyString)")
    }
    
  • 使用抓包工具(比如Charles、Proxyman)查看完整的请求详情,确认请求是否到达服务器、请求头和请求体是否符合API文档要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:22:17