我送使用AFNetworking JSON(最初存储在一个NSDictionary)。 我的目标看起来像这样(从文档注释拍摄):
/**
* Sends a create request to the API server
* Success will be a dictionary containing:
*
* playlistSession: {
* "mediaSegments": {},
* "mediaSequence": 0,
* "timeElapsed": 0,
* "config": {
* "maxSegments": 4,
* "targetDuration": 10
* },
* "meta": {
* "id": "test",
* "shouldBeAvailable": false,
* "isAvailable": false,
* "shouldFinish": false,
* "isFinished": false
* }
* }
*
* And should be appended to the sessionData dictionary
*/
我得到这个服务器上:
{ fileSequence: '3',
playlistSession:
{ config: { maxSegments: '4', targetDuration: '10' },
mediaSequence: '0',
meta:
{ id: 'MioeXvdiwB',
isAvailable: '0',
isFinished: '0',
shouldBeAvailable: '0',
shouldFinish: '0' },
timeElapsed: '0' } }
随着字符和字符串,其中数字和布尔值应该是。 难道我做错了什么?
这里的请求(该对象被存储在一个NSMutableDictionary
):
self.sessionData[fileSequenceKey] = [NSNumber numberWithInt:fileNumber];
self.sessionData[playlistSessionKey][metaKey][shouldFinishKey] = [NSNumber numberWithBool:lastSegment];
NSString *urlString = [[NSURL URLWithString:[NSString stringWithFormat:kAppendPath, self.postPath] relativeToURL:self.manager.baseURL] absoluteString];
NSURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
URLString:urlString
parameters:self.sessionData
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
NSError *error;
[formData appendPartWithFileURL:target name:mediaSegmentKey error:&error];
}];
AFHTTPRequestOperation *operation = [self.manager HTTPRequestOperationWithRequest:request
success:[self successBlock:lastSegment]
failure:[self failureBlock:lastSegment]];
[operation setUploadProgressBlock:[self completionBlock]];
[self.manager.operationQueue addOperation:operation];
fileNumber++;