Azure逻辑应用程序:如何制作一个x-www-form编码?

rt4zxlrg  于 2023-01-21  发布在  其他
关注(0)|答案(5)|浏览(132)

我正在尝试使用 Content-Type x-www-form-urlencoded 进行请求,该请求在postman中可以完美工作,但在Azure Logic应用程序中不起作用我收到了缺少参数的错误请求响应,好像我没有发送任何东西。
我用的是Http操作。
主体值是param 1 =value1&param2= value 2,但我尝试了其他格式。

piztneat

piztneat1#

Try out the below solution . Its working for me .

concat(
'grant_type=',encodeUriComponent('authorization_code'),
'&client_id=',encodeUriComponent('xxx'),
'&client_secret=',encodeUriComponent('xxx'),
'&redirect_uri=',encodeUriComponent('xxx'),
'&scope=',encodeUriComponent('xxx'),
'&code=',encodeUriComponent(triggerOutputs()['relativePathParameters']['code'])).

Here code is dynamic parameter coming from the previous flow's query parameter.

NOTE : **Do not forget to specify in header as Content-Type ->>>> application/x-www-form-urlencoded**
6za6bjd0

6za6bjd02#

HTTP Method: POST
URI : https://xxx/oauth2/token

在标题部分中,添加以下内容类型:

Content-Type: application/x-www-form-urlencoded

在正文中,添加:

grant_type=xxx&client_id=xxx&resource=xxx&client_secret=xxx
jecbmhm3

jecbmhm33#

回答这个问题,因为我今天需要自己打一个这样的电话。正如Assaf上面提到的,请求确实必须是urlEncoded的,很多时候你想组成实际的消息负载。
此外,请确保在HTTP操作中添加值为application/x-www-form-urlencodedContent-Type标头
因此,您可以使用以下代码合并获得urlEncoded的变量:

concat('token=', **encodeUriComponent**(body('ApplicationToken')?['value']),'&user=', **encodeUriComponent**(body('UserToken')?['value']),'&title=Stock+Order+Status+Changed&message=to+do')

当使用concat函数(在合成中)时,不需要花括号。

x8diyxa7

x8diyxa74#

首先身体需要:

{  param1=value1&param2=value2 }

(i.e.用{}包围)
也就是说,value 1和value 2应该是url编码的。如果它们是一个简单的字符串(例如a_b),则将按原样查找,但如果是https://a.b,则应转换为https%3A%2F%2Fa. b
我发现最简单的方法是使用https://www.urlencoder.org/来转换它。分别转换每个param,并放置转换后的值而不是原始值。

yhuiod9q

yhuiod9q5#

这是从解决方案的屏幕截图,我的作品,我希望它会有所帮助。这是与微软图形API的例子,但将与任何其他情况下:

相关问题