URL关键参数中包含带有JSON(NSDictionary)字符串的AFNetworking GET参数 [英] AFNetworking GET parameters with JSON (NSDictionary) string contained in URL key parameter

查看:186
本文介绍了URL关键参数中包含带有JSON(NSDictionary)字符串的AFNetworking GET参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

必须发送此JSON字符串:

This JSON string has to be sent:

{
"dashboard": "compact",
"theme": "dark",
"show_side_bar": "yes"
}



使用 GET 方法以这种格式进入REST API(因为服务器使用此PHP代码 $ _ GET [ setting] )和 AFHTTPRequestOperationManager ,这样等效的URL变为:

to a REST API using GET method in this format (since server retrieves data with this PHP code $_GET["setting"]) with AFHTTPRequestOperationManager, such that the equivalent URL becomes:

http:// www.examplesite.com/api/change_setting?setting= { dashboard: compact, theme: dark, show_side_bar: yes}

当我在 AFHTTPRequestOperationManager 的<$ c $中创建参数的 NSDictionary 时c> GET:parameters:success:failure:会将 url键参数添加到参数字典本身,如下所示:

When I create an NSDictionary of parameters in AFHTTPRequestOperationManager's GET:parameters:success:failure: which adds the url key parameter to the parameter dictionary itself like this:

{
  "setting": {
    "dashboard": "compact",
    "theme": "dark",
    "show_side_bar": "yes"
  }
}

简而言之 JSON字符串必须封装在 setting 参数 NOT 中,作为的对象>在JSON字符串中设置

In short only the JSON string must be encapsulated in setting parameter NOT as object of setting in a JSON string.

编辑:
这是代码:

Here's the code:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{
                             kSettingDashboard: @"compact",
                             kSettingTheme: @"dark",
                             kSettingShowSideBar: @"yes"
                             };

[manager GET:kURLChangeSetting
  parameters:[NSDictionary dictionaryWithObject:parameters forKey:@"setting"]
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         // code
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         /// code
     }];


推荐答案

尝试一下:

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSString *parametersString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

[manager GET:kURLChangeSetting
  parameters:@{@"setting" : parametersString}
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         // code
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         /// code
     }];

这篇关于URL关键参数中包含带有JSON(NSDictionary)字符串的AFNetworking GET参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆