我正在尝试使用Invoke-RestMethod从Freshdesk获取票证。我收到的错误是"调用-休息方法:无法发送具有此谓词类型的内容正文"。我的函数如下所示:
function opentickets()
{
$Body = @{
#description = $description.Text
email = $email.Text
#subject = $subject.Text
#type = $request.Text
#priority = 1
#status = 2
}
Invoke-RestMethod -uri "https://clasd.freshdesk.com/api/v2/tickets?" -
ContentType application/json -Method Get -Body ($Body | ConvertTo-Json)
}
用于查看工单的 Freshdesk API 端点应该返回类似于 freshdesk 使用 curl 给出的示例:
https://clasd.freshdesk.com/api/v2/tickets?email=[requester_email]
更新如果我使用以下:
Invoke-RestMethod -uri
"https://clasd.freshdesk.com/api/v2/tickets?
email=xyz@clasd.net" -Headers $FDHeaders -ContentType
application/json -Method Get
我收到了想要的结果。是否可以将调用命令的结果输出为用户更易读的内容?
对于任何客户端,您都不能将带有 GET 请求的有效负载(正文(发送到 RESTful 服务。 过去,大多数客户端都允许您这样做,但后来发生了变化。
解决方法有助于改用查询字符串来修正问题。 您必须查看 Freshdesk 的文档,看看它们是否支持检索票证信息的 POST 请求,或者确保查询字符串方法适合您的需求。
看起来建议按查询方法过滤票证:
https://developers.freshdesk.com/api/#filter_tickets