ios发送HTTP请求和操作JSON

来源:互联网 发布:二次型的矩阵的标准型 编辑:程序博客网 时间:2024/06/06 00:18

发送HTTP请求的代码:

-(void) queryUserDataFromServer{    YLSClientInfo *clientInfo = [YLSClientInfo new];    NSString *versionCode = clientInfo.currentClientVersion;// 应用当前版本号        YLSUserData *userData = [YLSUserDataUtil readUserData];    NSString *userId = userData.userId;// userId        NSString *url = [QUERY_USER_BY_USERNAME_SERVICE_URL stringByAppendingString:userId];        NSMutableURLRequest *request = [NSMutableURLRequest new];    [request setURL:[NSURL URLWithString:url]];    [request setHTTPMethod:@"GET"];    [request setValue:@"true" forHTTPHeaderField:@"xhr"];    [request setValue:versionCode forHTTPHeaderField:@"clientVersionCode"];        loginResponse = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];}

另外,ios会自动处理cookie的保存和发送,一般不需要特别编码处理

操作JSON的代码:

    NSError *error = nil;    NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:loginResponse options:kNilOptions error:&error];// loginResponse是NSData类型,包含两个key,分别是code和result        NSDictionary *result = [jsonArray objectForKey:@"result"];// 取出result字段        NSString *enterpriseId = [result objectForKey:@"enterpriseId"];    // 其他字段        NSDictionary *features = [result objectForKey:@"versionFeature"];// versionFeature是嵌套的另一个object        NSNumber *maxServiceCount = [features objectForKey:@"maxServiceCount"];    // 其他字段

HTTP响应的返回值是一个NSData*,用ios原生的NSJSONSerialization类就可以处理。上面代码处理的文本格式是:

{    "result":        {            "enterpriseId":xxxx,            "userId":xxxx,            "versionFeature":                {                     "maxServiceCount":20,                     "maxEmployeeCount":5                }        },     "code":0}


可以看出,在ios中,解析后的JSON对象,是看做NSDictionary来处理