Ios NSMutableURLRequest中的httpBody是什么?

Ios NSMutableURLRequest中的httpBody是什么?,ios,objective-c,request,nsurlconnection,Ios,Objective C,Request,Nsurlconnection,我需要手动创建请求,而不是使用AFNetworking NSString *baseURL = @"http://pl-dev2.railwaymen.org:4213/"; NSString *URLString = [NSString stringWithFormat:@"events/%@", identifier]; NSURL *url = [NSURL URLWithString:URLString relativeToURL:baseURL]; //final URL: http

我需要手动创建请求,而不是使用AFNetworking

NSString *baseURL = @"http://pl-dev2.railwaymen.org:4213/";
NSString *URLString = [NSString stringWithFormat:@"events/%@", identifier];

NSURL *url = [NSURL URLWithString:URLString relativeToURL:baseURL];
//final URL: http://pl-dev2.railwaymen.org:4213/events/6572673456

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PUT"];
现在我想发送一些参数:

NSDictionary *params = @{
    "a": "valueA", 
    "b": 23, 
    "c": [NSNull null], 
    "d": ["lisbona", "warsaw", "ny"], 
    "e": UIImageJPEGRepresentation(image, 1)
};
我该怎么做

NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:params options:nil error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
不幸的是,它不起作用

最终请求URL的外观如何

http://pl-dev2.railwaymen.org:4213/events/6572673456?a=valueA&b=23&c=&d[]=lisbona&d[]=warsaw&d[]=ny&e=
该查询的哪一部分是httpBody?每过一天

参数c和e呢

它是如何工作的


插入jsonString=NSString CfBrigingReleaseCfUrlCreateStringByAddingPercenteScapesNull,CFStringRefjsonString,NULL,CFStringRef@!;:@&=+$,/?%[],kCFStringEncodingUTF8;在setHTTPBody:method前面。您的代码看起来很好,但不发送[NSNull null]和NSdata*UIImageJPEGRepresentationimage,1-in-body参数。删除参数“c”,如果它是nil,并且“e”需要像NSString of data encodebase64或String of imageURLno一样,我必须发送nil参数,因为它意味着在服务器端清除某个内容,没有参数意味着对它不做任何处理。如何发送数据?在我的示例中,我需要发送一个映像。您不能通过http正文参数发送包含元数据的NSData。若将NSData和元数据一起发送到服务器,则需要使用类似于多部分上传或可恢复上传的方式。或者先上传NSData并只发送链接。或者使用encodebase64将NSData转换为NSString,并在服务器上解码以获取数据如何使用多部分上传,UIKit API是否有类似的功能?你能给我举个例子吗?