• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - AFNetworking : upload image with other parameters

[复制链接]
菜鸟教程小白 发表于 2022-12-12 17:00:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

首先,感谢您阅读这个问题。

我正在开发使用 JSON 网络服务的应用程序。在应用程序中,我需要使用带有一些参数的图像(配置文件图像)调用 web 服务。 我的 JSON 请求应与以下相同...

{
  "adduser": {
  "firstname": "testFirstName",
  "lastname": "testLastName",
  "email": "[email protected]",
  "projectids" : "1"
  }
  }

还有其他变量如 profileimage 用于上传图片。

我已经写了以下代码。

    NSDictionary *dictParameter = @{@"adduser": @{@"firstname": firstName, @"lastname":lastName,@"email":email, @"projectids""1"}};
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    AFHTTPRequestOperation *op = [manager POST:strURL parameters:dictParameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        } success:^(AFHTTPRequestOperation *operation, id responseObject) {
                NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"Error: %@ ***** %@", operation.responseString, error);
            }];
 [op start];

以上代码记录以下错误。

Error: <br />
<b>Notice</b>:  Undefined index: json in <b>/opt/lampp/htdocs/testproject/app/webroot/webservices/include.php</b> on line <b>15</b><br />
{"status":"failure","message":"Your Request is Empty"} ***** Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8abe490 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

如果我使用以下代码,它就可以正常工作。但我无法上传图片。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
   [manager POST:strURL parameters:dictParameter success:^(AFHTTPRequestOperation *operation, id responseObject) {

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    }];

谢谢



Best Answer-推荐答案


您缺少实际添加要发送到服务器的图像数据的部分。

NSDictionary *dictParameter = @{@"adduser": @{@"firstname": firstName, @"lastname":lastName,@"email":email, @"projectids""1"}};

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
AFHTTPRequestOperation *op = [manager POST:strURL parameters:dictParameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:filePath name"image" error:nil];
        } 
success:^(AFHTTPRequestOperation *operation, id responseObject) {
                NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
            } 
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"Error: %@ ***** %@", operation.responseString, error);
            }];

 [op start];

查看关于 posting a multi-part request 的 AFNetworking 文档.

关于ios - AFNetworking : upload image with other parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393712/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap