我在iOS中有一个方法,我要做的就是在POST
Body中使用简单NSDictionary
执行HTTP
。以下是rac_POST
的回复。
return [[[self rac_POST:[NSString stringWithFormat:@"reservations/%@/update",reservationID] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData){
[formData appendPartWithHeaders:@{@"Content-Type":@"application/json"} body:jsonData];
[formData appendPartWithFormData:jsonData name:@"payload"];
}] map:^id(RACTuple *t) {
RACTupleUnpack(NSDictionary * result) = t;
return result;
}] catch:^RACSignal *(NSError *error) {
return [self customErrorSignal:error];
}];
我已经尝试了很多方法,但只是POSTING
通过API
正确。我正在将NSDictionary
转换为NSData
,如下所示:
NSMutableDictionary *payloadDict = [[NSMutableDictionary alloc]init];
[payloadDict setObject:payloadArray forKey:@"payload"];
NSData *jsonData = [NSKeyedArchiver archivedDataWithRootObject:payloadDict];
我的方法中缺少什么?
我还尝试在我的参数body
中添加payloadDict
(我的代码中为dictionary
),但它无效。根据我们的内部API
文档,它特别说要将payloadDict
添加为HTTP
正文的一部分。有人也可以澄清这是否会产生影响?
答案 0 :(得分:1)
您可以使用这种方式将NSDictionary转换为NSData
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:questionDict options:0 error:nil];
答案 1 :(得分:0)
如果您的服务接受json格式的数据,那么您应该使用$(document).ready(function(){
$('.somecontainer').on('resize',function(){
if ($('.somecontainer').width() < 640) {
$('.somecontainer').addClass('m');
} else {
$('.somecontainer').removeClass('m');
});
});
将根对象转换为数据而不是NSJSONSerialization
。