Objective-C JSON 字符串到 Django-phonenumber-field "The phone number entered is not valid."



我的iOS应用程序需要在我的网站上注册新用户。其中一个必填字段是电话号码,所以我在模型中的服务器上使用django电话号码字段PhoneNumberField。我发送POST请求的iOS代码如下所示:

NSString *url = @"http://mywebsite.com/api/register";
NSString *post = @"name=test&email=test@test.com&phone_number=+15554443333&password=test";
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[post length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSURLConnection *con = [NSURLConnection connectionWithRequest:request delegate:self];
if(con) {
    NSLog(@"Connection Successful");
} else {
    NSLog(@"Connection could not be made");
}

注意:"post"one_answers"url"通常是通过方法调用传入的,但为了简单起见,我只是在这里对其进行了硬编码。

PhoneNumberField需要一个国际电话号码格式的号码,据我所知,这就是我正在使用的号码。无论我为phone_number投入了什么,我总是得到{"phone_number":["The phone number entered is not valid."]}作为响应。如果我从我的模型中取出phone_number并使用相同的代码(没有phone_number=+15554443333),那么新用户就会在服务器上注册,一切都很好。

我在网上到处找我的问题,但在任何地方都找不到解决方案。有人知道我做错了什么吗?谢谢

我的模型中的"名称"是CharField,"电子邮件"是EmailField

我解决了这个问题。我需要对字符串进行URL编码,这意味着中的加号

NSString *post =@"name=test&email=test@test.com&phone_number=+15554443333&password=test";

需要是%2B。所以结束字符串看起来像

NSString *post =@"name=test&email=test@test.com&phone_number=%%2B15554443333&password=test";

相关内容

最新更新