我無法將異步NSURLRequests發送到Ruby服務器。當我使用下面的連接從未:Objective-C到Ruby服務器的異步NSURLConnection
self.data = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://domain.com/app/create_account.json"]];
[request setHTTPMethod:@"POST"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request addValue:@"form-data" forHTTPHeaderField:@"Content-Disposition"];
[request setHTTPBody:[data dataUsingEncoding:NSUTF8StringEncoding]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
然而,當我與交流的最後一行:
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
一切都很正常。但我確實需要進行這種連接異步...
編輯,工作實例
NSURL *url = [NSURL URLWithString:@"http://domain.com/app/create_account.json"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:data forKey:@"data"];
[request setDelegate:self];
[request startAsynchronous];
看來RESTful服務需要自己的第三方框架,在這種情況下。
你怎麼知道連接永遠不會被創建?你是否實現了NSURLConnection的委託方法? – rdelmar 2012-07-26 06:02:00
服務器日誌沒有得到請求,除非完成同步請求,否則沒有響應字符串被髮送回程序。如果我簡單地將url更改爲php服務器,這裏看到的異步方法可以工作。 Ruby服務器似乎導致了這個問題。 – AddisDev 2012-07-26 06:14:57
是的,所有的委託方法都實現了。 – AddisDev 2012-07-26 06:23:52