Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
559 views
in Technique[技术] by (71.8m points)

ios - AFNetworking post image in nested json

I have to send a nested json request which includes an image in an inner hierarchy. eg:

{"product" : {
  "catalogue_id" : "x", 
   "name" : "my product", 
   "image" : #<image>
  } 
}

Problem is if I try using multipartFormRequestWithMethod:path:parameters:constructingBodyWithBlock: (and appendPartWithFileData:name:fileName:mimeType:), passing in catalogue_id and name as params, the image field is appended after "product", like so:

{"product" : {
  "catalogue_id" : "x", 
   "name" : "my product"
  } ,
   "image" : #<image>
}

Is there a way to specify that the image field is nested at certain depth?

Thanks heaps

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Found the answer with some tinkering: product[image] in the name did the trick

Sample code:

NSMutableURLRequest *request = [[client sharedInstance]
                         multipartFormRequestWithMethod:@"POST" 
                                                   path:@"/catalogues/1/products.json" 
                                             parameters:params
                              constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
                                  [formData appendPartWithFileData:img
                                                              name:@"product[image]" 
                                                          fileName:@"myimage.jpg" 
                                                          mimeType:@"image/jpg"];
                                  }];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...