0
我在處理註冊表單,我需要使用安全的POST請求。在JSON響應之前sendSynchronousRequest註冊用戶
如果我只是使用NSJSONSerialization
與變量data
,它的效果很好。沒有錯誤。
的問題是,當我致電sendSynchronousRequest
和嘗試調用NSJSONSerialization
的變量secureData
,在registrationError
說:「與該電子郵件已經存在的用戶」。
我該如何避免這種情況?
這裏是我的代碼:
NSData *data = [NSData dataWithContentsOfURL:registrationURL];
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:registrationURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
[postRequest setHTTPMethod:@"POST"];
[postRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[postRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[postRequest setValue:[NSString stringWithFormat:@"%d", data.length] forHTTPHeaderField:@"Content-Length"];
[postRequest setHTTPBody:data];
NSURLResponse *response;
NSError *error;
NSData *secureData = [NSURLConnection sendSynchronousRequest:postRequest returningResponse:&response error:&error];
NSLog (@"%@", error);
if (secureData != nil)
{
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:secureData options:kNilOptions error:&error];
NSString *registrationError = [json objectForKey:@"error"];
NSLog(@"%@", registrationError);
}
編輯:這裏有沒有職位,沒有工作的代碼:
NSData *data = [NSData dataWithContentsOfURL:registrationURL];
if (data != nil)
{
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSString *registrationError = [json objectForKey:@"error"];
NSLog(@"%@", registrationError);
}
我意識到這一點。我每次都測試一個不同的電子郵件地址。問題是'sendSynchronousRequest'。 @eik –
你得到一個完美的有效的JSON對象,所以NSURLConnection不是culprint。 OTOH對我來說「使用該電子郵件的用戶已經存在」聽起來很像服務器消息。 – eik
這是正確的。當我在沒有安全POST的情況下注冊電子郵件時,我沒有收到服務器消息。當我使用安全POST進行註冊時,我總是收到服務器消息;不管我用什麼郵件。 - @eik –