首先,我很确定我已经检查过这里的每一个答案,我想做什么也没有.
答案很少,但没有一个是好的.对于我正在搜索的内容,必须有一些简单的实现.
我想:当应用程序打开时,它会加载一些网页.我想完全保存该网页.现在用户可以退出或做任何他想做的事情(只是不卸载).只要有一些互联网连接(我检查使用可达性类),网页正常加载并保存.如果用户打开应用程序并且没有INTERNET连接我只想显示"它可能不是最新的bla bla boa"的消息并显示上次应用程序有互联网连接时保存的完整,保存的网页.
保存完整网页的最佳方式(最新)是什么?我发现了一些关于MKNetworkKit但我不确定如何使用它.任何帮助,将不胜感激.
我在特定文件夹上设置了NSURLCache(../../Application Support/Offline,因此它不会被OS随机删除),然后我发送NSURLRequest和NSURLRequestReturnCacheDataElseLoad策略.
如何判断由符合NSURLConnectionDelegate的类处理的响应是来自缓存还是来自网络?
nsurlconnection nsurlrequest nsurlcache nsurlconnectiondelegate
在iOS(当前目标5.0,Base SDK 5.1)中,如何向服务器发送发布请求,然后读取页面内容.例如,页面采用用户名和密码,然后回显true或false.这只是为了更好地理解NSURLRequest.
提前致谢!
我希望能够使用我的UIWebView loadRequest方法发送一些额外的标头.
我试过了:
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.reliply.org/tools/requestheaders.php"]];
[req addValue:@"hello" forHTTPHeaderField:@"aHeader"];
[self.theWebView loadRequest:req];
Run Code Online (Sandbox Code Playgroud)
我也试过继承UIWebView和拦截- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法.
在那个方法中,我有一个代码块,看起来像这样:
NSMutableURLRequest *newRequest = [request mutableCopy];
for(NSString *key in [customHeaders allKeys]) {
[newRequest setValue:[customHeaders valueForKey:key] forHTTPHeaderField:key];
}
[self loadRequest:newRequest];
Run Code Online (Sandbox Code Playgroud)
但由于某些未知原因,它导致Web视图无法加载任何内容(空白帧)并出现错误消息NSURLErrorCancelled (-999)(所有已知的修复程序都没有为我修复它).
所以我不知道该怎么做.如何发送自定义标头和UIWebView请求?
非常感谢!
我的iPhone应用程序仅因使用(非常安全,似乎)私有方法+setAllowsAnyHTTPSCertificate:forHost:而被拒绝NSURLRequest.是否有非私有API来模拟此功能?
我如何将NSURLRequest转换为NSString?
我是objective-c的新手,我希望使用POST将一些键值对传递给PHP脚本.我正在使用以下代码,但数据似乎没有通过发布.我也试过通过使用NSData来发送东西,但似乎都没有工作.
NSDictionary* data = [NSDictionary dictionaryWithObjectsAndKeys:
@"bob", @"sender",
@"aaron", @"rcpt",
@"hi there", @"message",
nil];
NSURL *url = [NSURL URLWithString:@"http://myserver.com/script.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[NSData dataWithBytes:data length:[data count]]];
NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSLog(@"responseData: %@", content);
Run Code Online (Sandbox Code Playgroud)
这将被发送到这个简单的脚本来执行数据库插入:
<?php $sender = $_POST['sender'];
$rcpt = $_POST['rcpt'];
$message = $_POST['message'];
//script variables
include ("vars.php");
$con = mysql_connect($host, $user, $pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
mysql_query("INSERT INTO php_test …Run Code Online (Sandbox Code Playgroud) AFNetworking允许您向NSDictionary请求添加一个参数,它会将它们附加到请求中.因此,如果我想做一个GET请求,?q=8&home=8888我只是@{@"q": @"8", @"home": @"8888"}简单地制作一个NSDictionary .
是否有办法用NSURLSession/ NSURLConnection/ NSURLRequest?
我知道我可以NSJSONSerialization用来附加JSON数据,但如果我只想将它们作为GETURL中的参数呢?我应该添加一个类别吗?
我正在实现一个需要通过HTTP获取大量图像的iOS应用程序.我已经尝试了几种方法但独立完成了我的工作,Instuments显示不断增加的内存分配,并且当我在设备上运行它时,应用程序迟早会崩溃.仪器没有泄漏.
到目前为止,我尝试了以下方法:
Instrumetns中的调用树显示在处理HTTP响应时消耗了内存.在异步NSURLConnection的情况下,这是
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[receivedData appendData:data];
}
Run Code Online (Sandbox Code Playgroud)
在同步NSURLConnection的情况下,Instruments显示了不断增长的CFData(商店)条目.ASIHTTPRequest的问题似乎与类似代码位置中的异步NSURLConnection相同.[NSData dataWithContentsOfURL:url]方法在exactely该语句中显示了越来越多的总内存分配.
当请求在一个单独的线程中完成时,我正在使用NSAutoReleasePool,我试图用[[NSURLCache sharedURLCache] removeAllCachedResponses]释放内存 - 没有成功.
有什么想法/提示来解决问题吗?谢谢.
编辑: 如果我使用CoreData持久保存图像,则仅显示该行为.这是我作为NSInvocationOperation运行的代码:
-(void) _fetchAndSave:(NSString*) imageId {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *url = [NSString stringWithFormat:@"%@%@", kImageUrl, imageId];
HTTPResponse *response = [SimpleHTTPClient GET:url headerOrNil:nil];
NSData *data = [response payload];
if(data && [data length] > 0) {
UIImage *thumbnailImage = [UIImage imageWithData:data];
NSData *thumbnailData = UIImageJPEGRepresentation([thumbnailImage scaleToSize:CGSizeMake(55, 53)], 0.5); // UIImagePNGRepresentation(thumbnail);
[self performSelectorOnMainThread:@selector(_save:) …Run Code Online (Sandbox Code Playgroud) 我试图从服务器获取数据.我使用NSURLConnectionDelegate,NSURLConnectionDataDelegate.有代码(Objective-C).
-(void)sendRequest
{
NSURL* url = [[NSURL alloc] initWithString:@"http://SomeServer"];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] init];
NSString* reqBody = [NSString stringWithFormat:@"<tag>Content</tag>"];
NSData* reqData = [reqBody dataUsingEncoding:NSUTF8StringEncoding];
NSInputStream* stream = [NSInputStream inputStreamWithData:reqData];
[request setURL:url];
[request setHTTPBodyStream:stream];
[request setHTTPMethod:@"POST"];
self.wpData = [[NSMutableData alloc] init];
NSURLConnection* conection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[conection start];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[self.wpData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d {
NSString* str = [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding];
NSLog(@"RESPONSE DATA: %@",str);
[self.wpData appendData:d];
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用时,我得到"411 …
objective-c nsurlconnection nsurlrequest ios http-status-code-411
nsurlrequest ×10
objective-c ×7
ios ×6
iphone ×4
cocoa-touch ×3
uiwebview ×2
cocoa ×1
memory ×1
nsoperation ×1
nsurlcache ×1
nsurlsession ×1
php ×1
request ×1