我正在尝试使用Invoke-RestMethod从Freshdesk获取门票。我收到的错误是“Invoke-RestMethod:无法使用此动词类型发送内容正文”。我的功能如下:
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
我收到了预期的结果。我可以将Invoke命令的结果输出到用户更可读的内容吗?
答案 0 :(得分:2)
对于任何客户端,您都不能将带有GET请求的有效负载(正文)发送到RESTful服务。过去大多数客户都允许你这样做,但这已经改变了。
您的解决方法有助于通过使用查询字符串来解决问题。您必须查看Freshdesk的文档,看看它们是否支持检索票证信息的POST请求,或确保查询字符串方法符合您的需求。
看起来像查询方法的过滤单是推荐的: