“字符@使HTTPCaller拒绝该功能”的注释和答案 https://knowledge.亚搏在线safe.com/questions/94302/the-1.html “字符@使HTTPCaller拒绝该功能”问题的最新评论和答案 霍利雅塔夫回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/94390/view.html

您好!@jkrúda公司

很抱歉,您遇到了这个问题,这是根据FMEENGINE-58185提交的已知问题。作为一种解决方法,可以将HTTPCaller配置为使用“指定上载体”提交请求,并将内容类型头设置为多部分/表单数据,如本文的已接受回答中的示例:https://knowledge.亚搏在线safe.com/questions/28528/httpcaller-file-post.html

一旦这个问题得到解决,我会更新这篇文章。

2019年6月24日星期一格林尼治时间15:23:32 霍利雅塔亚搏在线
jkrúda回答 https://knowledge.亚搏在线safe.com/answers/94317/view.html

请参见附带的工作台进行测试
测试HTTPCaller GET POST.fmw

我希望邮递员能回答a@b.c.公司.

结果


得到
岗位
url编码
公元前40年
公元前40年
无编码
a@b.c.公司
错误


这表明,对于GET请求,FME自己进行字符编码。但是对于POST请求,不应该进行编码,因为@是POST字符串值中的有效字符。价值观之间有一些类似的东西

边界=--
2019年6月21日星期五格林尼治时间13:41:47 jkrúda公司
jkrúda对jkrúda回答的评论 https://knowledge.亚搏在线safe.com/comments/94314/view.html网站

是的,用别的东西代替@是可行的。但之后我必须再次用@替换服务器端的数据,因为Post数据并不是正常的。使用Get请求,服务器将理解%40是@符号。

并非所有@字符都被FME用来指代内置函数:

在AttributeCreator中写入@Value@Va(@Value(_count))将导致@Value@Va(1),并且不会出现不知道函数Va的错误。


附加试验:

foo=酒吧

a=Va

b=蓝色

测试=@值(a)@值(b)(foo)

会导致

测试=@Value(foo)

而不是在

测试=巴

FME可能有一种方法告诉自己不要计算@Value(foo)


因此,FME中似乎有一个bug,它希望在不检查@和()之间是否有函数名的情况下计算POST字符串@。



2019年6月21日星期五格林尼治时间13:23:08 jkrúda公司
红色地理回答 https://knowledge.亚搏在线safe.com/answers/94309/view.html

您需要对请求url进行编码,尝试将其放入一个属性中,然后通过TextEncoder运行它,将编码类型设置为url(百分比编码),它将用%40替换@,这将使HTTPCaller接受它。

这里的“问题”是FME使用@来引用内置函数。

2019年6月21日星期五格林尼治时间12:24:22 红学