GithubHelp home page GithubHelp logo

netyouli / whcnetworkkit Goto Github PK

View Code? Open in Web Editor NEW
472.0 472.0 134.0 5.11 MB

WHCNetWorkKit 是http网络请求开源库(支持GET/POST 文件上传 后台文件下载 UIButton UIImageView 控件设置网络图片 网络数据工具json/xml 转模型类对象 网络状态监听)

License: MIT License

Objective-C 99.31% Ruby 0.69%

whcnetworkkit's People

Contributors

netyouli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whcnetworkkit's Issues

session的下载不支持断点续传

session的下载会有自己的缓存路径,不在你设置的那个路径,所以使用session下载每次查找resumeData都会返回空。就会重新下载。

下载文件的疑问

看你的断点续传的代码。有一个地方不是很清楚。

在下载过程中,当程序强制退出以后。

再次进入app,你的例子中的下载的进度是如何恢复到退出之前的?

我也尝试用通过读取序列化的对象的方法。但是读取的是上一次保存的序列化对象数据,并不是退出的那一刹那的下载数据信息。

writeDiskCache这个方法我全局搜过,似乎你也没有对强制退出App做过特殊的处理。

是我哪里看遗漏了,还请指点一二。

iOS10下暂停的下载在恢复下载时报错Invalid resume data for background download. Background downloads must use http or https and must download to an accessible file.

iOS10 下用downloadTaskWithResumeData 恢复下载时报错,导致无法恢复下载
报错信息如下:

Error on cosole:

2016-10-25 17:28:04.126863 BigFlix[3253:591639] -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-10-25 17:28:04.127684 BigFlix[3253:591639] -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-10-25 17:28:04.419939 BigFlix[3253:591639] Invalid resume data for background download. Background downloads must use http or https and must download to an accessible file.

好像是iOS10 api 的问题

我觉得有些可以优化的地方

我提个建议, 我在写一个下载列表时,如果我在下载文件时进入下载列表时要使用如下代码判断
未命名.pdf
那个fileName 我不知道怎么填 ,你可以把它改为输入文件的url么? 我觉得这样逻辑更合理,并且我还发现了一些问题,主要是文件存储路径问题 : 我不知道savePath 还是有fileName 有啥用啊 , 填了之后文件存储路径总感觉有问题哎 ,第三个问题,在注册网络监听时,我觉得有优化的地方,辟如 在registerNetworkStatusMoniterEvent后面带一个回调块,网络出现更改就回调 这样会更好

最后我觉得如果添加离线下载功能,可以直接读取已经下载的文件和 还未下载完成的文件信息,正在下载的文件个数,已经下载的文件个数,那么这个下载器就完美了

后台下载成功连接的情况下并不会跑responseBlock

  • (nullable WHC_DownloadSessionTask *)download:(nonnull NSString *)strUrl
    savePath:(nonnull NSString *)savePath
    saveFileName:(nullable NSString *)saveFileName
    response:(nullable WHCResponse) responseBlock
    process:(nullable WHCProgress) processBlock
    didFinished:(nullable WHCDidFinished) finishedBlock;

方法在成功开始下载资源的时候并不会回调responseBlock,而连接失败或者已添加过的时候才会回调。

ssl 忽视证书~

感谢作者分享。
我是这样做的:
在download 类加上一个属性。 实现下面两个代理:

import "WHC_Download.h"

//其中canAuthenticateAgainstProtectionSpace如果返回No,将由系统自行处理。返回YES将会由后续的didReceiveAuthenticationChallenge处理。默认为No。

  • (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
    {
    return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
    }

在didReceiveAuthenticationChallenge中要通过challenge的sender告知是否信任服务端的证书

  • (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
    {
    if (self.trustedSSL) {
    [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
    }else {
    [challenge.sender cancelAuthenticationChallenge:challenge];
    }
    }

同一个视频点击下载多次

同一个视频点击下载多次,离线缓存里面会有多个同一个名称的视频正在下载,等下载完成后,这多个下载cell,会只剩下一个

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.