打印

[问题求助] 用net/http怎么传递认证?

用net/http怎么传递认证?

require 'net/http'
  require 'uri'
  Net::HTTP.get_print URI.parse('http://www.example.com/index.html')


一般直接打印所需页面的xml时,用上面的语句就足够了,但是,如果要取得的xml需要id认证,那么,id参数怎么传递?
尽快学会ruby!!

TOP

TOP

请解释一下什么是"xml需要id认证"
如果是HTTP Base auth认证,可以可以将认证用户名,密码放到请求头里面传过去
新建一个request对象实例,然后
request.basic_auth(username, password)
如果是https连接,道理类似

建议你一个技巧,就是不要直接上来就ruby代码抓页面,先用curl测试
curl -u 'username':'password' \
-H 'Content-Type: application/soap+xml; charset=utf-8;' \
--url "target_address" \
-d 'request body'
这样,具体用法查curl文档或者google,curl调试通了在用ruby实现,道理完全相同

TOP

引用:
原帖由 lgn21st 于 2008-3-13 16:35 发表
建议你一个技巧,就是不要直接上来就ruby代码抓页面,先用curl测试
curl -u 'username':'password' \
-H 'Content-Type: application/soap+xml; charset=utf-8;' \
--url "target_address" \
-d 'request body'
这样,具体用法查curl文档或者google,curl调试通了在用ruby实现,道理完全相同
呵呵,让我想起了wget,以前我们干的缺德事 :) 可以直接把浏览器的 session,cookies 传递给它。这样登陆过一次,不管有没有验证码都可以抓取,速度还很不错。

忘记地址了:
http://www.gnu.org/software/wget ... e/HTTP-Options.html

TOP

wget呀,呵呵,现在我还天天再用呢

TOP

谢谢你们,这么热心的帮我解答,还有不同方法。谢谢!!
不过我没有几个R币了,所以在这儿多解几声……
本帖最近评分记录
  • lgn21st R币 +5 不用客气,大家互相学习,共同进步! 2008-3-17 23:25
尽快学会ruby!!

TOP

回复 #5 lgn21st 的帖子

你真是个好人!
尽快学会ruby!!

TOP

2008-11-23 23:34 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61