我为这个冗长的问题提前道歉。 我在自签名的SSL证书上遇到了麻烦,我想logging迄今为止我尝试过的所有内容。 我正在开发一个与REST服务进行通信的应用程序。 testing服务器使用一个自签名的SSL证书,我可以在我的电脑上安装而不会出现问题。 这是一个需要安装密码的.p12文件。 没有安装这个证书,所有到服务器的请求返回一个403。 .p12将三个项目安装在“根证书颁发机构”,“根证书颁发机构”颁发的“testing用户”证书以及与“testing用户”证书关联的私钥中。 我通过给自己发送.p12文件在我的iPad上安装了这个证书。 我点击附件,input密码,现在我可以访问Safari中的网站。 不幸的是,由于应用程序沙箱,这是不足以让我的应用程序与REST服务进行通信。 我使用ASIHTTPRequest进行与来自我的应用程序的REST服务的所有通信。 每个请求都是ASIHTTPRequest的一个子类。 我发现我必须做的第一件事就是调用[self setValidatesSecureCertificate:NO]; 所以它甚至会尝试到服务器的SSL连接。 如果这就是我所做的,我会从服务中获得403个错误代码。 现在我似乎无法弄清楚如何获得使用证书的请求。 我已经尝试导出这三个项目作为单独的.cer文件,包括他们在项目中,并添加到请求使用下面的代码: NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cert" ofType:@"cer"]]; SecCertificateRef cert = SecCertificateCreateWithData(NULL, (CFDataRef)data); … [self setClientCertificates:[NSArray arrayWithObjects:(id)cert, …, nil]]; 虽然代码执行没有问题使用这种方法,我仍然得到403错误。 我甚至尝试在我的应用程序中包含.p12文件,并使用相同的代码导入它。 这因SecCertificateCreateWithData返回nil而失败。 我承认我真的不知道我在这里做什么。 这一切都在我的头上,任何人都可以给我的帮助将不胜感激。
有谁知道NSURLConnection / NSURLRequest是否支持gzip请求。 如果有,你能提供更多的信息吗? 提前致谢!
我对swift非常陌生,所以我可能在代码中有很多错误,但是我想实现的是向参数localhost服务器发送一个GET请求。 更多,所以我试图实现它给我的函数采取两个参数baseURL:string,params:NSDictionary 。 我不知道如何将这两个结合到实际的URLRequest? 这是我到目前为止所尝试的 func sendRequest(url:String,params:NSDictionary){ let urls: NSURL! = NSURL(string:url) var request = NSMutableURLRequest(URL:urls) request.HTTPMethod = "GET" var data:NSData! = NSKeyedArchiver.archivedDataWithRootObject(params) request.HTTPBody = data println(request) var session = NSURLSession.sharedSession() var task = session.dataTaskWithRequest(request, completionHandler:loadedData) task.resume() } } func loadedData(data:NSData!,response:NSURLResponse!,err:NSError!){ if(err != nil){ println(err?.description) }else{ var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) […]
有什么办法可以添加HTTP头到NSURLRequest对象? 我用它们在NSMutableURLRequest添加它们使用: [request addValue:@"PC" forHTTPHeaderField:@"machineName"]
我想知道如何获得一个返回值1或0只是…从一个URL请求asynchronous返回。 目前我是这样做的: NSString *UTCString = [NSString stringWithFormat:@"http://web.blah.net/question/CheckQuestions?utc=%0.f",[lastUTCDate timeIntervalSince1970]]; NSLog(@"UTC String %@",UTCString); NSURL *updateDataURL = [NSURL URLWithString:UTCString]; NSString *checkValue = [NSString stringWithContentsOfURL:updateDataURL encoding:NSASCIIStringEncoding error:Nil]; NSLog(@"check Value %@",checkValue); 这工作,但是它阻止我的主线程,直到我从URL的回复,我如何设置它,这样做会在另一个线程,而不是主线程? 编辑:答案我结束upcalling我的function,这个效果不错:) [self performSelectorInBackground:@selector(shouldCheckForUpdate) withObject:nil];
我已经梳理了iOS上通过POST上传图片的许多post。 尽pipe有关这个主题的丰富的信息,我不能设法正确上传从我的iPhone模拟器照片库采取的JPEG数据。 一旦在服务器上的数据,只是一个hex的庞大的string。 不应该只是一个字节streamNSData? 我不明白所有的hex,或为什么这个代码似乎适用于其他人。 这是有问题的代码: -(void)uploadWithUserLocationString:(NSString*)userLocation{ NSString *urlString = @"http://some.url.com/post"; // set up the form keys and values (revise using 1 NSDictionary at some point – neater than 2 arrays) NSArray *keys = [[NSArray alloc] initWithObjects:@"auth",@"text",@"location",nil]; NSArray *vals = [[NSArray alloc] initWithObjects:self.authToken,self.textBox.text,userLocation,nil]; // set up the request object NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] […]
我试图按照这个教程,并使用Swift和NSURLConnection连接到一个JSON API。 我可以看到,它正在打url,但connectionDidFinishLoading似乎并没有触发。 import UIKit class Remote: NSObject { var host = "http://localhost:3000" var query = String() var data: NSMutableData = NSMutableData() func connect(query:NSString) { self.query = query var url = self.document() var conn = NSURLConnection(request: url, delegate: self, startImmediately: true) } func endpoint() -> NSURL { var query = self.host + self.query return NSURL(string: […]
如何将数据追加到现有的POST NSURLRequest ? 我需要添加一个新的参数userId=2323 。
我是新来的Objective-C,而且我已经开始为最近的请求/响应付出很大的努力。 我有一个工作的例子,可以调用一个url(通过http GET)并parsing返回的json。 下面的工作示例如下 – (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [responseData setLength:0]; } – (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } – (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog([NSString stringWithFormat:@"Connection failed: %@", [error description]]); } – (void)connectionDidFinishLoading:(NSURLConnection *)connection { [connection release]; //do something with the json that comes back … (the fun part) } – […]