我有下面的代碼,由於某種原因,我得到一個無響應時,它執行。我已經手動嘗試了瀏覽器中的鏈接並打印JSON數據。我知道有些事情我做錯了,但我一直無法發現它。我錯過了什麼?RESTful HTTP GET not response is null iOS
NSString *strUrl = [NSString stringWithFormat:@"https://localhost/getData?usersesh=%@&dev=%@&lat=%f&long=%f", sessionId, deviceName, coordLat, coordLong];
NSString *strFormattedUrl = [strUrl stringByAddingPercentEscapesUsingEncoding:NSStringEncodingConversionAllowLossy];
NSURL *url=[[NSURL alloc]initWithString:strFormattedUrl];
NSLog(@"url: %@",strFormattedUrl);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"GET"];
//[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//[request setHTTPBody:postData];
//[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"response: %@",response);
NSLog(@"%@",strUrl);
if ([response statusCode] >= 200 && [response statusCode] < 300)
{
NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"Response ==> %@", responseData);
NSError *error = nil;
NSMutableDictionary *jsonData = [NSJSONSerialization
JSONObjectWithData:urlData
options:NSJSONReadingMutableContainers
error:&error];
didReturnError = [jsonData[@"ERROR"] integerValue];
if(!didReturnError){
NSMutableDictionary *respBody = [jsonData objectForKey:@"RESPONSE_BODY"];
eventCount = [respBody[@"EVENTS"] count];
...
其實本地主機的URL?然後你在哪裏運行它? – Wain 2015-04-04 15:28:30
不,我只是把它扔在那裏,以便不透露實際的URL。我在一個單獨的網絡上運行它。 POST請求我做得很好。我正在做我的GET請求錯誤。 – joshdeco 2015-04-04 15:41:12
最好讓你明白你做出那樣的改變,否則你會得到錯誤的答案。什麼是響應和錯誤? – Wain 2015-04-04 15:43:42