span8
span4
当使用带有Post请求和表单数据输入的HTTPCaller时,该输入中的@字符将使FME拒绝该特性。
它会给出以下错误信息:
本FME版不承认“功能”。Please ensure that the current platform supports this function, the function name is spelled correctly, and that you have installed all required plug-ins"
我如何转义@在这个邮件地址,以便fme将张贴的数据?
这里的错误消息没有帮助,因为没有对“函数”的调用。
嗨@jkr_da,
很抱歉您遇到了这个问题,这是一个已知的问题,在FMEENGINE-58185下。作为一个解决方案,它可能会配置HTTPCaller来提交请求使用“指定上传主体”,并设置内容类型头为多部分/表单数据,例如在接受的回答这篇文章:https://knowledge.亚搏在线safe.com/questions/28528/httpcaller-file-post.html
一旦这个问题被修复,我将更新这篇文章。
请参阅附带的工作台进行测试
测试HTTPCaller得到POST.fmw
我期待邮递员服务员来回答a@b.c。
结果
得到 |
帖子 |
|
url_encode |
% 40公元前 |
% 40公元前 |
没有编码 |
a@b.c |
错误 |
这表明,在使用GET请求时,FME会对自己进行字符编码。但是对于POST请求应该不进行编码,因为@是POST字符串值中的有效字符。值之间用类似的东西分隔
边界=——
您需要对请求url进行编码,尝试将其放入属性中,然后通过TextEncoder运行它,将编码类型设置为url(百分比编码),它将用%40替换@,这将使HTTPCaller接受它。
这里的“问题”是FME使用@来指代内置函数。
是的,用别的东西来代替@可以。但是我必须再次用@替换服务器端的数据,因为Post数据通常不会这样做。使用Get请求,服务器将理解%40是@符号。
并不是所有@字符都被FME用来引用内置函数:
写@Value@VaAttributeCreator中的@ value (_count)将导致@Value@Va(1)而不是在错误中不知道函数Va。
额外的测试:
foo = bar
弗吉尼亚州一个=
b =卢
测试= @@Value (a) @ value (b) (foo)
将导致
测试= @ value (foo)
而不是在
测试=酒吧
FME可能会告诉自己不要计算@Value(foo)
所以看起来FME有一个bug,它想要在没有检查@和(之间是否有函数名的情况下计算POST字符串@。
©2019安全亚搏在线软件公司法律