我正在使用ruby和typhoeus-gem通过其RESTful API将内容上传到XWiki页面。这非常有效。 但是当谈到上传标签时,我正在与空间角色斗争。 通过GUI添加逗号分隔的标签,如“有空格字符,另一个标签”,将产生两个标签:“有空格字符”和“另一个标签”。 这就是我想要的,但这不适用于API。上面的例子将导致五个标签除以空格。
页面的API Documentation describes how to add a tab。它说,在“application / x-www-form-urlencoded”的情况下,使用字段名称“tag”。 如果我使用此字段类型,则只能上载一个标记。重复此操作将覆盖以前的标记。 所以我尝试使用“标签”作为字段类型,它适用于上传多个标签。但是间距问题仍然如上所述。
这是我正在使用的ruby代码:
url = mainpage_url + "/tags"
tags = "having space characters, another tag"
# HTTP PUT request
request = Typhoeus::Request.new(
url,
ssl_verifypeer: false,
method: :put,
userpwd: "#{username}:#{password}",
headers: {'Content-Type'=> "application/x-www-form-urlencoded;charset=UTF-8"},
body: {tags: tags}
)
# Handling HTTP errors
request.on_complete do |response|
if response.success?
#$log.info("Tags uploaded.")
elsif response.timed_out?
$log.error("Time out: Tags not uploaded.")
elsif response.code == 0
$log.fatal("Could not get http response while uploading Tags. #{response.return_message}")
else
$log.fatal("HTTP request failed while uploading Tags. #{response.code.to_s}")
end
end
request.run
response = request.response
puts response.body
我已经尝试过:
我认为application / xml可以是解决方案。我尝试了不同的xml-strings而没有成功。也许你有一个线索给我。
答案 0 :(得分:0)
当我写下我的问题时,我发现用换行符替换空格(\ n)会阻止XWiki按空格分割标签。所以字符串必须看起来像:
tags = "having\nspace\ncharacters,another\ntag"
这将按预期结果:
纠正我,但我认为这不是最好的做法。如果您有其他解决方案,我们非常欢迎您。