有没有啥方法可以在没有 Json 的 NSData 的情况下单独发布参数

Posted

技术标签:

【中文标题】有没有啥方法可以在没有 Json 的 NSData 的情况下单独发布参数【英文标题】:Is there any way to post parameters individually without NSData for Json有没有什么方法可以在没有 Json 的 NSData 的情况下单独发布参数 【发布时间】:2017-03-14 11:31:02 【问题描述】:

有没有什么方法可以在没有 Json 的 NSData 的情况下单独发布参数

这是我的代码:

NSData *jsonInputData = [NSJSONSerialization dataWithJSONObject:datDict options:NSJSONWritingPrettyPrinted error:&error];
[req setHTTPBody: jsonInputData];

我们可以附加单独的参数而不是 jsonInputData 吗?

【问题讨论】:

如果请求方法是 GET 类型,您只需附加“?parameter name = value”即可将请求作为查询参数发送。如果请求类型是 post 并且它需要 JSON,则必须将其转换为 NSData 请求类型为POST @sireesha 用字典发送数据 @Jigar 我自己发送数据。但根据要求,我需要将参数单独传递给 HTTPBody。我不明白如何传递这些参数。我尝试使用 NSString 类型,但应用程序崩溃了。那么有没有办法将参数单独传递给 HTTPBody ?PFB 代码 NSString* jsonString = [[NSString alloc] initWithData:jsonInputData encoding:NSUTF8StringEncoding]; [请求 SETHTTPBody: jsonString]; 【参考方案1】:
NSString *params=[[NSString alloc]initWithFormat:@"mobile=%@& uid=%@ & sim_code=%@ & operator_code=%@ & operator_name=%@ & otp=%@",num,uuid,dail,dailingcode,carrier.carrierName,randomCode];


   NSString *mainUrl=[NSString stringWithFormat:@"%@%@",urlLinkA,methodName];

    NSURL * url = [NSURL URLWithString:mainUrl];
    NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];

    //NSString * params=[[NSString alloc]initWithFormat:@"mobile=%@",[self.reqnum text]];

    NSLog(@"parameter %@",parameters);
    [urlRequest setHTTPMethod:@"POST"];
    [urlRequest setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]];

    NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
                                                       completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
                                                           NSLog(@"Response:%@ %@\n", response, error);
                                                           if(error == nil)
                                                           

【讨论】:

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) if(data) [self jsonGetParse:data]; ]; 但我替换的方法已弃用,我可以进一步使用 用这个替换:我猜它会起作用 [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) // Block Body ];

以上是关于有没有啥方法可以在没有 Json 的 NSData 的情况下单独发布参数的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在不将 CIImage 转换为 UIImage 或 CGImage 的情况下将 CIImage 转换为 NSData?

NSData writeToFile 返回 NO 没有任何错误

NSData:读取文件的内容[重复]

将 NSData 转换为 JSON 对象数组

是否有 AFHTTPClient 使用 AFNetworking 发布 json 的示例?

是否可以将数据写入本地 json 文件,除了角度之外啥都没有?