苏飞论坛

标题: 希望HttpHelper框架能自己处理Cookie 要不使用太麻烦了! [打印本页]

作者: 励磁机    时间: 2015-1-29 20:32
标题: 希望HttpHelper框架能自己处理Cookie 要不使用太麻烦了!
本帖最后由 励磁机 于 2015-1-29 20:58 编辑

前阵子无意中看到了苏飞站长的 HttpHelper框架 大概看了一些介绍感觉使用上比较人性化一些 正好最近要使用到http这块   于是今天就买了一份框架 使用了一下 感觉很多地方确实比.net自身的webclient和httpclient方便一些  但是在使用中也发现了一些问题  特别是cookie的处理上  并没有像大多第三方框架一样 有自动处理cookie的能力 这在日常使用中带来了非常的不便(因为很多时候 并不必要每次都手动的去管理cookie),像不管是JAVA中非常好用的的Httpclient及其他的很多第三方类库  还是.net自身的Httpclient类库 都有自动管理cookie的功能  这样在一些没有必要非常手动处理Cookie的地方 类库本身就自行处理好了 给开发者节省了大量的时间  比如很简单的一个例子 如某网站的登陆后 的多次320跳转 及跳转后的一些后续操作 这过程中类库已经自动管理好了Cookie 开发者根本不需要去关心Cookie的问题 只要正常使用GET POst请求就好了     现在的HttpHelper却每一步都要自行管理Cookie这给操作上来说无形中增加了很大的工作量  希望HttpHelper框架能自己处理Cookie 要不使用还是太麻烦了  最后还是要感谢大神为我们做出的贡献
作者: 站长苏飞    时间: 2015-1-30 08:21
你上面写这些多的意思是不是就是让让Http302跳转的时候自动处理Cookie?

我写的是根据协议来的,并不是贪图什么功能,自动处理302的我可以提供一下方法,这个没有问题。但是默认的还是要让用户手动的,毕竟这是协议默认说明大多数是这样。

不能因为个人或者部分需求来定义。

这点还请理解。

你上面有些说的非常不方便,或者是太麻烦,应该只是这一咱情况吧。
还是我理解错了。

如果你是想做登录的,我相信有很大一部分都是需要Cookei组合的,
就算不需要组合,你都登录成功了,拿着Cookie直接去访问其他页面就行了,没必要让他跳转了吧。

网站只所以302是想让获取Cookie之后跳转到主页,或者个人中心之类的。这些就算你不跳转也不会影响你直接拿着登录的Cookie去访问其他页面。

所以我非常 希望大家不要操作这一步,省流量是一方面,提高性能 才是关键。



最后感谢你的建议,这个采纳了



作者: 励磁机    时间: 2015-1-30 09:29
站长苏飞 发表于 2015-1-30 08:21
你上面写这些多的意思是不是就是让让Http302跳转的时候自动处理Cookie?

我写的是根据协议来的,并不是 ...

感谢回复 ,我说的302跳转只是一个比方   我的意思是 HttpHelper最好能自行处理Cookie 不需要每次都手动管理它  好比 我要做登陆  用.NET自带的Httpclient或者类似的其他的框架 如果我想省事点 而且暂时不需要手动提取Cookie的话  我只需要保证发出请求时的对象是一样的就行了  好比我用的登陆的对像 可以接着去访问其他页面(这时它自身已经自动提取和保存了Cookie) 根本不用关心Cookie ,但你需要手动管理的时候  可以自己去手动管理,这样可以省下不少的时间和工作量。 这个功能我看了一下 论坛里还是有很多的呼声的 如果可能的话 希望楼主能增加。

   另外昨晚还看了一下您写的开飞助手  里面有个是使用的WebBrowser获取Cookie然后可以在HttpHelper里面使用 虽然使用场景不是很通用 不过也是一个目前的解决方案。

最后还是感谢您为我们提供了一个这么方便的Http请求框架的确在很多地方使用很符合大众的习惯  如果能加入Cookie自动管理  我个人认为就比较完美了!
作者: 站长苏飞    时间: 2015-1-30 09:50
我的类是做Http协议的封装,不是做浏览器引擎的。再说你要访问那个页面,要取那个页面的Cookie,要执行那个JS才能取到Cookie这个我是不会知道的,关于集成引擎的功能,再说吧。
毕竟方向不一样。

这个呼声高是吧,我给你说个更高,比如输入一个登录页面的地址,输入账户密码可以实现自动登录,这不是更好。

但这路是需要程序交换的,不可能自动化,就是自动化也是部分需求而已。类库会变的非常笨重,

当然可以使用我的类开发出这类组件,但不能在类里面集成。

作者: 励磁机    时间: 2015-1-30 12:46
站长苏飞 发表于 2015-1-30 09:50
我的类是做Http协议的封装,不是做浏览器引擎的。再说你要访问那个页面,要取那个页面的Cookie,要执行那个 ...

哪我接着还是使用.net自身的HttpClient吧,等以后HttpHelher更完美了再来吧!希望HttpHelper越来越好!
作者: howzew    时间: 2015-1-30 13:19
站长苏飞 发表于 2015-1-30 09:50
我的类是做Http协议的封装,不是做浏览器引擎的。再说你要访问那个页面,要取那个页面的Cookie,要执行那个 ...

我之前遇到一种情况,就是做一个页面的登陆,提交用户名密码后,抓包发现自动进行了3次302重定向,最关键的是,每一次302的时候,cookies都会变,这种情况,是不是只能一步一步手动处理了?
作者: 站长苏飞    时间: 2015-1-30 13:23
这个最好不要强求吧,HttpClient是什么东西我相信你应该知道(或者再深入一下),

完全不同的概念,比如钉鞋的有钉子,但不是卖钉子的。

方向不同,不能因为你有这样的需求,就得让钉鞋的改成卖钉子的吧。
这好像还谈不上加不加的问题。而是根本你理解的概念和我理解的是不一样的。或许是我错了,但也不排除你把概念能混了。

最明了的问题,如果完全可以替代,那微软是Sb吗?出两个完全 一样的类?从这点看微软的程序员很明显比你我要强的多

其实也没什么,协议就是协议,不会带有功能,只有规则,只有插件或者组件这种定向定需求的才会有特殊功能
作者: 站长苏飞    时间: 2015-1-30 13:24
howzew 发表于 2015-1-30 13:19
我之前遇到一种情况,就是做一个页面的登陆,提交用户名密码后,抓包发现自动进行了3次302重定向,最关键 ...

如果都是从302页面返回的可以自动,如果有其他页面参杂的就必须手动了。第一种情况我下次更新会加上自动化,但第二种暂时没法加。
作者: howzew    时间: 2015-1-30 13:29
站长苏飞 发表于 2015-1-30 13:24
如果都是从302页面返回的可以自动,如果有其他页面参杂的就必须手动了。第一种情况我下次更新会加上自动 ...

就是第一种情况,哇咔咔!这个太好了,感谢老大!
作者: 励磁机    时间: 2015-2-1 00:56
站长苏飞 发表于 2015-1-30 13:24
如果都是从302页面返回的可以自动,如果有其他页面参杂的就必须手动了。第一种情况我下次更新会加上自动 ...

  正像上面的兄弟说的 有的网站302跳的很烦人 多跳连续跳而且每次cookie都在变化     如果下次能先把这个解决也要省心不少事了  期待中......  幸苦了
作者: 学无止境    时间: 2015-2-1 08:25
确实希望能集成更强大的功能,因为很多情况 httphelper.cs就足够了, dll框架就应该更强大,使用起来更方便。
作者: 与你无关    时间: 2015-2-7 11:32
站长苏飞 发表于 2015-1-30 08:21
你上面写这些多的意思是不是就是让让Http302跳转的时候自动处理Cookie?

我写的是根据协议来的,并不是 ...

..其实大家的意思说白了   就是想不用自己来处理cookie  ,你就在框架里增加个参数 AutoCookie 呗。。可以自动获取cookie  也能合并cookie
作者: 站长苏飞    时间: 2015-2-7 12:55
与你无关 发表于 2015-2-7 11:32
..其实大家的意思说白了   就是想不用自己来处理cookie  ,你就在框架里增加个参数 AutoCookie 呗。。可 ...

自动是可能的,除非加引擎,很明显这事情只适用于部分需求
作者: 站长苏飞    时间: 2015-2-7 12:55
站长苏飞 发表于 2015-2-7 12:55
自动是可能的,除非加引擎,很明显这事情只适用于部分需求

你要明白自动301或者302和自动处理Cookie的区别,
作者: 与你无关    时间: 2015-2-8 22:46
站长苏飞 发表于 2015-2-7 12:55
你要明白自动301或者302和自动处理Cookie的区别,

或者你可以这样考虑下   httphelper 就只是http协议的实现 cookie 不会去处理
然后框架里增加个参数之类的 可以像浏览器一样处理cookie,这个功能真的很方便大家使用,或者你可以论坛发个投票贴看看大家怎么选
作者: 站长苏飞    时间: 2015-2-9 08:23
与你无关 发表于 2015-2-8 22:46
或者你可以这样考虑下   httphelper 就只是http协议的实现 cookie 不会去处理
然后框架里增加个参数之类 ...

这个没有选择的必要,肯定是赞同的人占多数,因为大部分是不懂这版的,还有人是懒惰的,你们肯定是希望我做的和浏览器一样强大,而不是每一个都让你们自己实现


我说了301 302的可以处理,这个我一开始就说行了吧,
不要再绕回来了,看看上面的帖子,而且这个提议有人提过了。

302 301实现没有问题,但是自动化处理不可能。这不 是一个方向,我想你随便找一本框架之类的书,或者是关于Http协议的书一看就明白了。我想说这是这行的常识,但是又怕伤害你,让你误以为我看不起你们。其实不是这样的,只是每个人专注的方向不同而已
这个就到这里吧。不讨论了。





欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4