【问题标题】:How to add parameters to NSURLSession如何向 NSURLSession 添加参数
【发布时间】:2014-08-07 19:41:40
【问题描述】:

当我在会话配置中添加参数字典并设置 HTTPAdditonalHeaders 属性时,我的应用程序崩溃并出现以下错误:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFNumber 长度]:无法识别的选择器发送到实例 0xb0000000000000f2”

字典只包含一个字符串和 1 个 NSNumber 对象。我不知道如何解决这个问题。请帮帮我。

代码:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

NSDictionary *parametersDictionary = @{"firstname": @1, "lastname": @2};
configuration.HTTPAdditionalHeaders = parametersDictionary;

NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];

[[session dataTaskWithURL:[NSURL URLWithString:url] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

}] resume];

谢谢。

【问题讨论】:

  • 你能添加一些代码吗?
  • @lucianomarisi 是的,你去!

标签: ios objective-c json networking nsurlsession


【解决方案1】:

我认为问题在于你不能在你的parametersDictionary 中设置NSNumbers,所以如果你用字符串替换你的parametersDictionary 的值,事情应该可以工作。

像这样:

NSDictionary *parametersDictionary = @{"firstname": @"first name value", @"lastname": @"last name value"};

话虽如此,我通常在 HTTP 正文中使用 JSON 有效负载,以便为此类示例提供更大的灵活性。

【讨论】:

  • 但是现在它忽略了参数。
  • 你怎么知道它忽略了参数?我用 Charles 代理尝试了该代码,并且参数在那里。
  • 因为我用NSLog查看结果,参数被忽略了。
  • 好的,您可以添加用于记录请求标头的代码吗?
猜你喜欢
  • 2017-03-07
  • 2020-07-09
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多