我正在开发一个聊天应用程序,并且添加了Quickblox聊天框架,但是当用户更新时出现以下错误:

要求网址:https://api.quickblox.com/users/12345.json?user%5Bemail%5D=abc%40gmail.com&user%5Bfull_name%5D=abc%xyz&user%5Blogin%5D=1234567890&user%5Bpassword%5D=abcdefghij&user%5Bphone%5D=1234567890

请求方法:PUT

请求标头:{
“Content-Type” =“应用程序/ json”;
“QB-SDK” =“iOS 2.0.12”;
“QB token ” = b9a57f30857d7591d6766dac7345d78bc1c9f588;
“QuickBlox-REST-API-Version” =“0.1.1”;
}
请求参数:{
用户= {
电子邮件=“[email protected]”;
“full_name” =“abc xyz”;
登录= 1234567890;
密码= abcdefghij;
电话= 1234567890;
};
}

请求标头:{
“Content-Type” =“应用程序/ json”;
“QB-SDK” =“iOS 2.0.12”;
“QB token ” = b9a57f30857d7591d6766dac7345d78bc1c9f588;
“QuickBlox-REST-API-Version” =“0.1.1”;
}

响应标题:{
“Access-Control-Allow-Origin” =“*”;
“Cache-Control” =“无缓存”;
连接=“保持 Activity ”;
“Content-Type” =“应用程序/ json; charset = utf-8”;
日期=“星期日,2015年2月1日18:59:19 GMT”;
“QB-Token-ExpirationDate” =“2015-02-01 20:57:39 UTC”;
“QuickBlox-REST-API-Version” =“0.1.1”;
服务器=“nginx / 1.0.15”;
状态=“422无法处理的实体”;
“传输编码” =身份;
“X-Rack-Cache” =“无效,通过”;
“X-Request-Id” = 17331b69e1b7a38d8545629e241733c8;
“X-Runtime” =“0.013145”;
“X-UA-Compatible” =“IE = Edge,chrome = 1”;
}

我用下面的代码...

    if (firstName.length > 0 || lastName.length > 0 || email.length > 0 || mobileNo.length > 0 || country.length > 0) {

    QBUUser *user = [QBUUser user];
    AppUser *AppUser = [AppUser user];
    user.ID = AppUser.ID;
    user.login = AppUser.login;
    user.password = AppUser.password;
    user.fullName = [NSString stringWithFormat:@"%@ %@",firstName,lastName];
    user.email = email;
    user.phone = mobileNo;

    [QBRequest updateUser:user
             successBlock:^(QBResponse *response, QBUUser *user) {

        AppUser *AppUser = [AppUser user];
        AppUser.country = country;

        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Information" message:@"Profile updated successfully." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];

    } errorBlock:^(QBResponse *response) {

        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error while updating." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];

    }];
} else {

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Information" message:@"Fields can't be empty." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
}

最佳答案

尝试通过删除(或注释掉)上面的一个字段来首先更新用户对象,直到找到有问题的属性。您一次更新了很多,以至于您不知道是哪个引起了问题。

我怀疑登录属性是源,因为我相信它是在注册时设置和固定的,因此以后无法更新。

关于ios - ios在Quickblox中更新时无法处理的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28267386/

10-12 02:41