(这花了我一段时间,所以我提供了问题和答案,认为这是值得的。)
DataImportHandler 必须从中检索数据的 URL 通过 HTTPS 和附加auth
参数进行保护。的配置DataImportHandler
看起来像这样:
<dataConfig>
<dataSource type="URLDataSource"
baseUrl="https://www.gutscheinpony.de/"
encoding="UTF-8"/>
<document>
<entity name="pony"
pk="id"
url="feeds.xml?auth=XXX"
processor="XPathEntityProcessor"
forEach="/data/offers/offer"
xsl="xslt/gutscheinpony.xsl">
<!-- fields omitted -->
</entity>
</document>
</dataConfig>
在常规 SOLR 6 安装上运行此程序将失败并显示403 Forbidden
代码,而通过curl
成功对同一 URL 进行快速测试(仅显示有趣的输出):
curl https://www.gutscheinpony.de/feeds.xml?auth=XXX -Iv
> Host: www.gutscheinpony.de
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
DataImportHandler
是否可以在不编写自定义 Java 代码的情况下为连接设置用户代理?