【发布时间】:2011-12-08 00:28:59
【问题描述】:
我有一个 python 脚本,它使用 curl 将文件发布到 SOLR 集合中。
命令如下所示,
solrURL = "http://mySolr:8983/solr/solrdatabase/update/csv?commit=true --data-binary @+"fileName" -H 'Content-type:text/xml; charset=utf-8'"
print "=====SOLR URL====="
print solrURL
print "=====SENDING TO SOLR====="
subprocess.call(['curl', '-v', solrURL])
但是,当它这样做时,它会这样做,
GET http://mySolr:8983/solr/solrdatabase/update/csv?commit=true --data-binary @+"fileName" -H 'Content-type:text/xml; charset=utf-8' HTTP/1.1
什么时候应该使用 POST。如果我在终端中手动执行命令,它工作正常。当我尝试使用 python 脚本时,有什么想法为什么会这样吗?
【问题讨论】:
-
我很惊讶 python 文档没有更明确地传递命令选项:(docs.python.org/library/subprocess.html#subprocess.call
-
请务必使用 Python 的 urllib2(带有 Multipartposthandler)将内容上传到 Solr。如果你想要 CURL 功能(在这种情况下是多余的),你应该使用 libCURL 而不是命令行中的 CURL。在stackoverflow.com/questions/7414419/… 上查看我的回答
标签: python solr python-2.x