如何将 api body x-www-form-urlencoded 转换为原始纯文本



我正在新的测试软件Tosca中设置oAuth生成。Tosca 只能处理具有原始正文类型的 API 调用。我需要将下面的 x-www-form-urlencoded 有效负载转换为纯文本。请求被拒绝,并显示"developerMessage":"身份验证服务拒绝了请求"。

我尝试将所有":"更改为">

=",将所有换行符更改为"&"。这适用于将其他x-www-form-urlencode有效载荷转换为纯文本。我已经删除了我们的client_id和client_secret,并将它们添加到基本身份验证中。我已经从正文中删除了所有特殊字符和空格,但仍然出现错误。

范围:开放ID 领域:雇主 auth_method:明信 auth_id_user_token:A+B/C/D== 随机数:光盘 identity_method:空气 response_type:id_token 令牌 grant_type:密码

我改成了

scope=openid&realm=employer&auth_method=cleartrust&auth_id_user_token=A+B/C/D==&nonce=cd&identity_method=air&response_type=id_token token&grant_type=password

纯/文本 api 调用应获得成功的响应并带回 oAuth 令牌。

完全披露:我在支持部门为Tricentis工作。

Tosca的API引擎还可以处理URL编码的有效载荷。有关示例屏幕截图,请参阅此手册页:https://support.tricentis.com/community/manuals_detail.do?lang=en&version=12.3.0&url=engines_3.0/api/api_create_url-encoded.htm

此外,请按照以下步骤操作:

  1. 在">技术视图"选项卡中,打开右侧的"标题"窗格。在那里输入一个带有值application/x-www-form-urlencoded的内容类型标头参数。
  2. 在"身份验证
  3. "选项卡中,选择">基本身份验证"作为方法,并使用client_id作为用户名,使用client_secret作为密码。勾选预身份验证复选框。
  4. "有效负载"选项卡中,可以输入 Web 服务所需的 url 编码有效负载。由于您使用 grant_type = 密码,因此有效负载必须至少包含字符串grant_type=password&username=someUsername&password=somePassword

最新更新