标签: nsurlrequest

使用 NSURLRequest 和 NSURLConnection 进行磁盘缓存是否真的适用于 iPhone?

我有一个 UITableView,其单元格包含从 Internet 异步加载图像的自定义 ImageView。要加载这些图像,我使用 NSURLRequest 和 NSURLConnection 工作正常。唯一的问题是图像没有缓存,因此每次使用时都会下载。我试图将 NSURLRequest 的 cachePolicy 设置为“NSURLRequestReturnCacheDataElseLoad”,但没有任何效果。

链接上的最后一个答案看来,iPhone 上的 NSURLRequest 不支持磁盘缓存。这样对吗?

如果它真的有效,我很想知道在我的情况下它不起作用的原因是什么。

这是代码:

NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myurl"] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];


connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Run Code Online (Sandbox Code Playgroud)

iphone caching disk nsurlconnection nsurlrequest

5
推荐指数
1
解决办法
2553
查看次数

UIWebView不会加载带证书的链接(https://前缀)

我知道之前已经问过这个问题,但是我已经看过每一个答案(没有很多),没有人帮助我.

我遇到的问题是我的学校电子邮件服务处理证书.这两个电子邮件服务的链接如下:

主校电子邮件:https: //marauder.millersville.edu/mail/index.pl

计算机科学电子邮件:https: //cs.millersville.edu/cswebmail

大学学生门户网站(在我的UIWebView中单击时,右边的Marauder Mail按钮不会打开)
http://myville.millersville.edu/

起初,这两个网站都不会使用标准的NSURL和NSURLRequest加载到我的UIWebView中.我在网上查找了解决方案,有人建议使用NSURLProtocolClient委托方法.在实现它们之后,我的UIWebView现在只会在学校邮件电子邮件加载时,当我有一个按钮时,点击时直接打开链接,而不是尝试从门户网站(上面的第3个链接)访问邮件,它仍然永远不会加载计算机科学电子邮件链接.我已经搜索了iOS帮助网站,发布了问题,尝试了多个开源自定义UIWebViews,但我还没有发现任何有用的东西.

我在网上看过的大多数答案都指向ASIHTTPRequest.我试过这个但是我无法正确实现它,它不会在我的UIWebView中加载链接; 这是我如何加载链接的代码:

mURL = [self getURL:viewNumber];
ASIHTTPRequest *req = [ASIHTTPRequest requestWithURL:mURL];
[req setDelegate:self];
[req startSynchronous];

//NSURLRequest *req = [NSURLRequest requestWithURL:mURL];
//urlConnection=[[NSURLConnection alloc] initWithRequest:req delegate:self];
webView.scalesPageToFit = YES;
//[webView loadRequest:req];
Run Code Online (Sandbox Code Playgroud)

注释中的代码是我如何在没有ASIHTTPRequest的情况下加载链接.

任何帮助表示赞赏!

另外,我的UIWebView还有另一个问题,链接如下.我没有得到任何答案,所以如果你觉得无聊请检查一下: UIWebView没有检测到网站上的文本框

iphone ssl-certificate uiwebview nsurlrequest ios

5
推荐指数
1
解决办法
8638
查看次数

iOS:可以直接在Safari中打开NSURLRequest吗?

我不是在谈论a UIWebView,我想用一个打开移动safari应用程序NSURLRequest.

为什么?在我的应用程序中,用户已登录我们的Web服务器.我想让用户选择启动网页而无需重新输入凭据.但是,我不能使用a,GET因为这会将他们的凭据放在URL中.

那么,我可以UIWebView使用NSURLRequest或以POST其他形式从我的应用程序中打开safari应用程序(而不是a )吗?

post mobile-safari nsurlrequest ios

5
推荐指数
1
解决办法
3432
查看次数

将NSURLRequest与UIWebView相关联

在iOS中,我希望能够联系起来的NSURLRequest- 任何 NSURLRequest,导航请求或图片的样式表请求是否-与UIWebView发送它.这似乎要求实现一个NSURLProtocol子类来捕获和分析请求.但是,我找不到将请求与其Web视图相关联的方法,而且NSURLProtocol似乎只能理解NSURLRequests.

这对于导航请求很好,因为我可以在我的链接中建立关联UIWebViewDelegate.但这对于不触发UIWebViewDelegate方法的图像等辅助资源请求不起作用.

任何人都有关于建立这种关联的最佳方式的任何想法?

uiwebview nsurlrequest nsurlprotocol ios

5
推荐指数
1
解决办法
835
查看次数

iOS - 在NSURLSession中重新尝试失败的NSURLRequests

在我的应用程序中,对我的服务器的2-4个API调用可以在我的API类中同时(异步)进行NSURLSession.为了向我的服务器发出API请求,我必须在HTTPHeaderField每个服务器中提供身份验证令牌NSURLRequest.令牌有效期为一天,如果在一天后失效,我需要刷新令牌.

我在我的API类的以下代码中执行此操作:

/*!
 * @brief sends a request as an NSHTTPURLResponse. This method is private.
 * @param request The request to send.
 * @param success A block to be called if the request is successful.
 * @param error A block to be called if the request fails.
 */
-(void)sendTask:(NSURLRequest*)request successCallback:(void (^)(NSDictionary*))success errorCallback:(void (^)(NSString*))errorCallback
{
    NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
    {
        [self parseResponse:response data:data fromRequest:request successCallback:success errorCallback:^(NSString *error)
        { …
Run Code Online (Sandbox Code Playgroud)

authentication api nsurlrequest ios nsurlsession

5
推荐指数
1
解决办法
561
查看次数

更改用户代理

如何在我的 WebView 中更改 User-Agent 的默认字符串?

@IBOutlet weak var myWbView: UIWebView!
let myURL = NSURL(string: "http://http://web-example")
let myURLRequest:NSURLRequest = NSURLRequest(URL: myURL!)
myWbView.loadRequest(myURLRequest)
Run Code Online (Sandbox Code Playgroud)

user-agent nsurlrequest ios swift

5
推荐指数
1
解决办法
1万
查看次数

来自NSURLConnection的NSURL?

这似乎很简单,因为创建一个NSURLConnection我通常这样做:

NSURL *theURL = [NSURL URLWithString:urlString];
NSURLRequest *req = [NSURLRequest requestWithURL:theURL];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:req delegate:self];
Run Code Online (Sandbox Code Playgroud)

但是如何在委托方法中获取URL?没有自己挂在他们身上(我一次运行很多连接,所以这变得有点凌乱).好像我应该能够从连接中获取URL.

我错过了什么吗?

cocoa nsurlconnection nsurlrequest

4
推荐指数
1
解决办法
3856
查看次数

将西里尔字符作为URL参数传递

我需要将Cyrillic字符作为参数传递到我的iPhone应用程序中的URL中.示例网址如下所示:

http://www.mysite.com/script.php?message =страшная

当我在浏览器中使用此URL时,它会返回正确的结果.但是,在我的应用程序中,西里尔字母不受欢迎,我最终在didFailWithError代码中得到一个"坏网址" .

我在浏览器中尝试了几种编码来解决这个问题,但没有运气.有没有办法通过iPhone应用程序实际发送上面的确切URL示例?我正在使用的代码片段是:

selectedWord = @"????????";
NSString *requestURL = [NSString stringWithFormat:@"http://www.mysite.com/script.php?message=%@", selectedWord];
NSLog (requestURL);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestURL]];

[[NSURLConnection alloc] initWithRequest:request delegate:self];
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,为了调试目的,我在NSString*selectedWord中硬编码了西里尔字.在实际应用中,它将基于用户输入而动态.

我尝试了一个更复杂的POST,认为我可以将西里尔文作为数据而不是文本传递,但要么我做错了,要么它也不起作用.

有关编码的任何示例我可以在我的浏览器中尝试,然后在应用程序中实现将是有帮助的.我意识到西里尔字母在NSURL中被拒绝,但我希望通过不同的代码或编码来绕过它.

iphone urlencode nsurlrequest

4
推荐指数
1
解决办法
4242
查看次数

嵌套的NSDictionary和NSArray,AFNetworking无法正常工作

NSDictionary *customerDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"blah@blah.com", @"email", @"1", @"facebook", nil];
NSArray *customerArray = [NSArray arrayWithObjects:customerDictionary, nil];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:customerArray, @"customers", nil];
NSURLRequest *request = [sharedHTTPClient requestWithMethod:@"POST" path:@"/api/upload" parameters:parameters];
AFJSONRequestOperation *operation =
    [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                    success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {}
                                                    failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {}];
[operation start];
Run Code Online (Sandbox Code Playgroud)

在Node.JS后端,打印出正文显示:

{ customers: [ '1', 'blah@blah.com' ] }
Run Code Online (Sandbox Code Playgroud)

预期印刷品应为:

{ customers: [{ facebook:'1', email:'blah@blah.com' }] }
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

json nsurlrequest node.js ios afnetworking

4
推荐指数
1
解决办法
2156
查看次数

NSURLRequest缓存问题iOS 7

在iOS 7中,cachePolicy不起作用,它只是缓存下载的json.

//URLRequest
        NSString *url = [NSString stringWithFormat:@"http://www.semhora.com/jsonparser/categories/categories_%d_test.json", _categoriesIndex];
        NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                                  cachePolicy:NSURLCacheStorageNotAllowed
                                          timeoutInterval:60.0];
Run Code Online (Sandbox Code Playgroud)

如何在iOS 7中禁止缓存?

nsurlrequest ios7 nsurlrequestcachepolicy

4
推荐指数
2
解决办法
5439
查看次数