如果内容设置为application/json,则changesUrl会部分编码

907
2
跳到解决方案
04-17-2021 07:29 am
标签(1)
CarlVricella1
通过
新的因素

你好,

我有一个webhook设置在一个托管功能层和由于某种原因的changesUrl是在部分编码,例如:

“changesUrl”“https % % 2 f % 2 3 fservices2.arcgis.com % 2 fo48sbyo4drqxssch % 2 farcgis % 2弗列斯特% 2 fservices % 2 ffinn_maps_hfs % 2 ffeatureserver % 2 fextractchanges % 3 fservergens % 3 d % 5 b479297 % 2 c479305 % 5 d % 26异步% 3 dtrue % 26 returnupdates % 3 dfalse % 26 returndeletes % 3 dfalse % 26 returnattachments % 3 dfalse”

我有一个WSGI服务器设置(使用瓶),这是钩子url,所以我有整个python在我的处置。除了试图提取所需的信息并以编程方式重新创建URL之外……这很可能会出错有没有其他方法来解决这个问题?我试着在一些论坛上看看是否有可能解码一个“编码”的字符串(我的意思是它是编码的,但不是python的“编码”,所以解码方法将不可用),它似乎不是,或者至少它不常见。

我猜如果我使用url形式编码的内容类型,我可能不会有这个问题,因为我在integromat上设置了一个场景,这不是问题。这里的问题是,我已经有我的路由设置application/json,并不是真的想要改变,如果我没有必要

有什么建议吗?谢谢!

标签(1)
0荣誉
1解决方案

接受的解决方案
JeffreyHolycross
Esri贡献者

重新创建这篇文章:

URL确实是编码的,但如果你试图使用“decode”方法,可能不是你所想的方式。这种格式被称为编码URL(参见https://www.w3schools.com/html/html_urlencode.asp).我不能说如果changesUrl应该被编码,但我同意webhook有效负载包括一个编码的URL。

在Python中,您可以通过将URL编码的字符串转换为非编码的URLurllib.parse.unquotehttps://docs.python.org/3/library/urllib.parse.html).

编辑:Carl指出请求库有类似的功能:requests.utils.unquote (url)

在原帖子中查看解决方案

2回答
CarlVricella1
通过
新的因素

太棒了,这正是我想要的,谢谢

编辑:如果有人感兴趣,还有一个请求模块等效:

JeffreyHolycross
Esri贡献者

重新创建这篇文章:

URL确实是编码的,但如果你试图使用“decode”方法,可能不是你所想的方式。这种格式被称为编码URL(参见https://www.w3schools.com/html/html_urlencode.asp).我不能说如果changesUrl应该被编码,但我同意webhook有效负载包括一个编码的URL。

在Python中,您可以通过将URL编码的字符串转换为非编码的URLurllib.parse.unquotehttps://docs.python.org/3/library/urllib.parse.html).

编辑:Carl指出请求库有类似的功能:requests.utils.unquote (url)