Почему RestKit возвращает другой ответ, чем NSURLConnection - PullRequest
1 голос
/ 16 января 2012

Я использую RestKit в проекте и получаю неожиданный ответ '---', поэтому я попытался использовать стандартную NSURLConnection, но получил правильный ответ - строку в формате json. Кто-нибудь может понять, в чем разница между этими двумя запросами? Если он отличается, типом ответа является «текст / yaml» для ответа.

Вот версия RKRequest, которая возвращает '---'

NSURL *URL = [NSURL URLWithString:URL_STRING];
RKRequest *request = [RKRequest requestWithURL:URL delegate:self];
request.queue = [RKClient sharedClient].requestQueue;
request.authenticationType = RKRequestAuthenticationTypeHTTP;
request.method = RKRequestMethodPOST;
request.params = requestParams;
[request send]; 

Вот версия NSURLConnection, которая возвращает правильно отформатированный ответ в json / yaml.

NSURL *url = [NSURL URLWithString:URL_STRING];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                               timeoutInterval:60.0];

NSData *requestData = [NSData dataWithBytes:[requestParams UTF8String] 
                                     length:[requestParams length]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];

UPDATE:

Хорошо, теперь все становится действительно странным - он перестал работать полностью как для NSURLConnection, так и для RestKit. Если кто-то может помочь, это будет оценено. Вот список cURL, который я использую, бросил терминал для проверки результатов (это все еще работает).

curl -i -H "Content-Type: application/json" -H "Accept: application/json" -d '{"username":"username","password":"password"}' http://example.com/login

И мой requestParams - это @ "{\" username \ ": \" username \ ", \" password \ ": \" password \ "}"

...