Мне нужно отправить адрес электронной почты со знаком "+
" и подтвердить его на сервере. Но сервер получает электронную почту типа "aaa+bbb@mail.com
" как "aaa bbb@mail.com
".
Я отправляю все данные как POST-запрос со следующим кодом
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", url, @"/signUp"]];
NSString *post = [NSString stringWithFormat:@"&email=%@&userName=%@&password=%@",
user.email,
user.userName,
user.password];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSData* data = [self sendRequest:url postData:postData];
переменная post перед кодированием имеет значение
&email=aaa+bbb@gmail.coma&userName=Asdfasdfadsfadsf&password=sdfasdf
после кодирования это то же самое
&email=aaa+bbb@gmail.coma&userName=Asdfasdfadsfadsf&password=sdfasdf
Метод, который я использую для отправки запроса, выглядит следующим образом:
-(id) sendRequest:(NSURL*) url postData:(NSData*)postData {
// Create request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSURLResponse *urlResponse;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:nil];
[request release];
return data;
}