Swift 获得;解析错误“;向YouTube数据API发送启动可恢复上载会话的请求时

Swift 获得;解析错误“;向YouTube数据API发送启动可恢复上载会话的请求时,swift,alamofire,youtube-data-api,Swift,Alamofire,Youtube Data Api,我试着按照这个指南开始一个可恢复的会话 但服务器返回此响应: 成功({ 错误={ 代码=400; 错误=( { 域=全局; message=“解析错误”; 原因=错误; } ); message=“解析错误”; }; }) Swift 5/Alamofire 5 let filePath = "/Users/lucas/Documents/test.mp4" do{ let attr = try FileManager.default.attributesOfI

我试着按照这个指南开始一个可恢复的会话

但服务器返回此响应:

成功({
错误={
代码=400;
错误=(
{
域=全局;
message=“解析错误”;
原因=错误;
}
);
message=“解析错误”;
};
})
Swift 5/Alamofire 5

    let filePath = "/Users/lucas/Documents/test.mp4"
    do{
        let attr = try FileManager.default.attributesOfItem(atPath: filePath)
        let dict = attr as NSDictionary
        let fileSize = dict.fileSize()
        let dicSnippest =  ["title": "TestVideo",
                              "description": "_description_",
                              "tags":"gundam",
                              "catagoryId":"22"]
        let dicStatus = ["privacyStatus": "private",
                         "embedded": "True",
                         "license": "youtube"]
        let sessionParam = ["snippet": dicSnippest,
                            "status": dicStatus
                            ]
        let targetUrl = "https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet,status"
        let sessionHeaders = HTTPHeaders([
            "Authorization": "Bearer \(token)",
            "Content-Type": "application/json; charset=utf-8",
            "Content-Length": "\(fileSize)",
            "X-Upload-Content-Length": "\(fileSize)",
            "X-Upload-Content-Type": "application/octet-stream"])

        print("token: \(token)")

        print("\(filePath): \(fileSize) bytes")
        AF.request(targetUrl, method: .post, parameters: sessionParam, encoding: URLEncoding.default, headers: sessionHeaders).responseJSON {
                response in
                print("Http Status Code: \(String(describing: response.response?.statusCode))")
                switch (response.result)
                {
                case .success(_):
                    print("Get Server Response!!")
                    print(response.result)
                    break
                case .failure(let error):
                    print("Failure!!")
                    print(error)
                    break
                }
            }
    } catch {
    }
顺便说一句,我将
AF.request
-
encoding
的参数从
URLEncoding.httpBody
修改为
JSONEncoding.default

发生以下错误:

responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

s/categoryId/categoryId/在修复打字错误后仍然得到相同的结果