在目标C中点击https网址时遇到了一些问题。这是我的代码。
- (void)viewDidLoad {
NSString *urlString = [NSString stringWithFormat:@"MY URL",uid];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:urlString]];
[request setHTTPShouldHandleCookies:YES];
[request setHTTPMethod:@"GET"];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSUInteger responseStatusCode = [httpResponse statusCode];
_responseData = [[NSMutableData alloc] init];
[self.responseData setLength:0];
NSLog(@"connection");
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
// Append the new data to the instance variable you declared
[_responseData appendData:data];
NSLog(@"_responseData%@",_responseData);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *jError;
NSArray *myApps= [NSJSONSerialization JSONObjectWithData:_responseData options:NSJSONReadingAllowFragments error:&jError];
NSLog(@"jError:%@",jError);
}
当我在模拟器中运行应用程序时,有时会获得 myApps 值。 但是大部分时间都没有得到回复。那时我能够看到 _responseData 和 myApps 的值为空。像这样获取响应数据
_responseData< 3c21444f 43545950 45206874 6d6c3e0a 3c212d2d 20242052 65766973 696f6e3a 20322e31 34303431 36202420 2d2d3e0a 3c212d2d 5b696620 49454d6f>
像this.myApps这样的错误是空的
jError:Error Domain = NSCocoaErrorDomain Code = 3840“无效的值 字符0.“UserInfo = {NSDebugDescription =周围的值无效 字符0。}
当我收到此错误时,我尝试在浏览器中点击URL,在浏览器中获取响应。 所以我再次清理并运行应用程序,仍然面临同样的问题。 但是,如果更改模拟器,例如我在iPhone 6s中运行并且遇到上述错误,现在更改为iPhone 6而不是获得响应。
任何人都可以帮助我。
答案 0 :(得分:0)
当您尝试以不正确的方式处理Cookie时会发生这种情况。从代码中删除以下行并检查。
[request setHTTPShouldHandleCookies:YES];
答案 1 :(得分:0)
有时,撇号('),空格或某些特殊字符可能会导致NSMutableURLRequest返回“null”URL。 在将字符串url传递给NSMutableURLRequest之前对其进行编码(转义百分比编码),如下所示:
NSString *updatedPhotoUrl = originalUrlString ;
updatedPhotoUrl = [updatedPhotoUrl stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: updatedPhotoUrl]];