iOS 阿里云 OSS 上传图片 OSSTask Callback 请求APP服务器失败

报错提示:

[SSTUploadHomeworkPictureManager.m 243]上传文件进度: 1.000000 2020-07-29 10:33:13.703696+0800 小塾学伴教师[3322:912420] dictionaryWithParser YES [SSTUploadHomeworkPictureManager.m 278]upload object success! --- result: https://xtimg.sharingschool.com/2020/07/29/20200729372166664733597696.jpg 2020-07-29 10:33:18.840108+0800 小塾学伴教师[3322:912425] 3322: CFNetwork internal error (0xc01a:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-1125.2/Loading/URLConnectionLoader.cpp:269) 2020-07-29 10:33:18.841362+0800 小塾学伴教师[3322:912425] 3322: CFNetwork internal error (0xc01a:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork/CFNetwork-1125.2/Loading/URLConnectionLoader.cpp:269)

解决办法:

阿里云OSS ${bucket}、${object}、${etag}、${size}、${mimeType} 这几个是系统变量,是回调给你服务端的时候传递回来的参数,用 ${} 圈起来是占位用的,你收到的时候已经被替换成实际值了。 ${x:var1}、${x:va2} 是自定义变量,是除了上述系统变量之外根据你业务需求自定义的参数,var1、var2 是键名,不是值。你应该起叫 .....&my_name=${x:var1}&my_age=${x:var2},然后在下面的请求正文里加入: { "x:var1": "张三", "x:var2": 24} 这样你服务端收到回调时的 my_name、my_age 两个参数的值就是“张三”、“24”。

有关 Callback 的详细文档:https://help.aliyun.com/document_detail/31989.html?spm=5176.doc31853.2.2.aYia1U

CallbackJson的值示例如下:

{

"callbackUrl" : "http://abc.com/test.php",

"callbackHost" : "oss-cn-hangzhou.aliyuncs.com",

"callbackBody" : "{\"bucket\":${mimeType}, \"object\":${object},\"size\":${size},\"mimeType\":${mimeType},\"my_var\":${x:my_var}}",

"callbackBodyType" : "application/json"

}

{

"callbackUrl" : "http://abc.com/test.php",

"callbackBody" : "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}"

}

示例:

NSString *paramBody = @"{\"vipId\":${x:vipId},\"courseName\":${x:courseName},\"derverFileId\":${x:derverFileId},\"fileKeys\":${x:fileKeys}}"; // 正确的 request.callbackParam = @{@"callbackUrl":[NSString stringWithFormat:@"https://xt.sharingschool.com/sz/api/teacher/library/V2/uploadPicture?accessToken=%@",[SSUtility getTeacherToken]], @"callbackBody":paramBody, @"callbackBodyType":@"application/json"}; // library/V2 request.callbackVar = @{@"x:vipId":img.vipId, @"x:courseName":img.course, @"x:fileKeys":uploadImgPath, @"x:derverFileId":img.derverFileId}; 

猜你喜欢

转载自blog.csdn.net/qq_27247497/article/details/107661851