URL关键参数中包含带有JSON(NSDictionary)字符串的AFNetworking GET参数 [英] AFNetworking GET parameters with JSON (NSDictionary) string contained in URL key parameter
问题描述
必须发送此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屋!