我想发布一个受密码保护的http文件 它具有用户名和密码登录页面,然后才能访问实际文档。 我试过这个
curl
-u username:password
"http://localhost:8983/solr/update/extract?literal.id=doc900&commit=true"
-F stream.url=http://somewebsite.com/docs/DOC2609
但它只是对登录页面编制索引。
答案 0 :(得分:0)
我的猜测是,您的此页面使用的身份验证方法不是卷曲支持开箱即用的HTTP身份验证方法之一。
HTTP身份验证是基本的 - 有些人可能会说是微不足道的 - 而且从根本上说它的基本形式是不安全的(字面意思是,'基本'模式HTTP身份验证通过网络以纯文本形式发送用户的密码,作为其中之一请求标题)。我只看到它与HTTPS一起使用,甚至现在这种情况非常罕见。
通常避免使用HTTP身份验证来支持通过HTTPS的HTTP PUT或POST请求,通常使用某种跨站点请求伪造(CSRF)预防措施或OAUTH2策略(通常将问题推迟到身份验证代理的实现)。
你的问题是,curl不知道这些。如果你在python中编程,你可能会发现requests
包有用(并且在设计中比curl更现代化)。如果你正确调用它的HTTP API,Solr就不会在意这两种方式。