【问题标题】:How to set NSInteger in HTTPHeaderField in AFnetworking如何在 AFnetworking 的 HTTPHeaderField 中设置 NSInteger
【发布时间】:2015-02-20 06:56:45
【问题描述】:

我想在 HTTPHeaderField 中设置 NSInteger 值。下面是我的代码

NSInteger user_id =1234;
if ([AFNetworkReachabilityManager sharedManager].reachable) {

    AFHTTPRequestOperationManager *afRequestOpManager = [AFHTTPRequestOperationManager manager];
    afRequestOpManager.requestSerializer = [AFJSONRequestSerializer serializer];
    afRequestOpManager.responseSerializer = [AFJSONResponseSerializer serializer];
    [afRequestOpManager.requestSerializer setValue:user_id forHTTPHeaderField:@"user-id"];
    [afRequestOpManager PUT:strUrl parameters:nil success: ^(AFHTTPRequestOperation *operation, id responseObject)
     {
         NSLog(@"JSON: %@", responseObject);
     }failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"JSON: %ld", error.code);
     }];

但我无法将 user_id 设置为整数。

【问题讨论】:

  • 为什么要在 HeaderField 中设置 User_ID .....??
  • - (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;值是 NSString 而不是 NSInterger 尝试转换它。

标签: ios iphone web-services rest afnetworking-2


【解决方案1】:

传入 setValue: 的类型是 NSString。要将您的 NSInteger 转换为 NSString,请使用:[NSString stringWithFormat:@"%ld", (long)user_id]

【讨论】:

  • 不,我想将它作为整数发送,因为在服务器端他们接受整数。
【解决方案2】:

HTTP Headers 值只能是字符串值,不能有任何其他数据类型值,

因此,将您的用户 ID 转换为字符串,如下所示

[NSString stringWithFormat:@"%d",user_id]

然后在标头中设置值,也只是为了约定,始终在您的自定义 http 标头前加上 X- 这样您的标头将成为 X-user-id

【讨论】:

  • 不,我想将它作为整数发送,因为在服务器端他们接受整数。
  • 你不能,这是http请求头字段的制作方式,它不受任何特定语言的限制,你只能在http头中发送字符串值,你必须改变你的处理方式服务器端,从字符串转换为整数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
相关资源
最近更新 更多