gpt4 book ai didi

ios - 通过UIWebView下载PDF

转载 作者:行者123 更新时间:2023-12-01 16:02:24 25 4
gpt4 key购买 nike

我有一个UIWebView使用像这样的Basic Auth加载PDF

NSURL* url = [[NSURL alloc] initWithString:_urlString];
NSString *authStr = [NSString stringWithFormat:@"%@:%@", usr, pwd];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength]];
NSMutableURLRequest *mutableRequest = [[NSMutableURLRequest alloc] initWithURL:url];
[mutableRequest setValue:authValue forHTTPHeaderField:@"Authorization"];
[_webView loadRequest:mutableRequest];

我有什么方法可以轻松地将此PDF文件保存到磁盘上吗?我已经尝试过但是失败了:
NSData *fileData = [[NSData alloc] initWithContentsOfURL:_webView.request.URL];

我的网址看起来像这样: www.domain.com/files/foo.pdf

最佳答案

-initWithContentsOfURL:NSData方法执行简单的HTTP GET,但是您需要设置一些Authorization参数,这就是失败的原因。

为避免两次下载数据,您可以使用NSURLSession进行下载,保存并使用-loadData:MIMEType:textEncodingName:baseURL:UIWebView进行加载。

NSMutableURLRequest *mutableRequest = //Your Custom request with URL and Headers
[[[NSURLSession sharedSession] dataTaskWithRequest:mutableRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error)
{
if (data)
{
//SaveDataIntoDisk
dispatch_async(dispatch_get_main_queue(), ^(){
[_webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];
});
}
}] resume];

关于ios - 通过UIWebView下载PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46051742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com