我试图设置与使用其余API和PowerShell的TFS 2017内部部署服务器上的团队相关联的区域。为TFS团队设置区域时参数'patch'的ArgumentNullException
当我尝试调用我的URI
在API example用JSON包作为解释,我收到以下错误返回:
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Value cannot be null. \r\nParameter name: patch","typeName":"System.ArgumentNullException, mscorlib, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "typeKey":"ArgumentNullException","errorCode":0,"eventId":0} + ... $result = Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand我真的可以使用索姆指导,以什么我应该寻找。我已经验证了我的Json包,它应该是格式良好的。
{ "defaultValue": "TeamProject\\Area1", "Values": [ { "value": "Area2\\Area21\\Area211", "includeChildren": false }, { "value": "Area3\\Area31\\Area311", "includeChildren": false } ] }
更新
我与PowerShell的调用,RestMethod cmdlet的
Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri -UseDefaultCredentials -Body $json -ContentType "application/json"
凡$setTeamAreaPathUri
对应于上述HTTP URI调用上面的URI。我应该使用post
作为我的webrequest方法而不是补丁吗?
我完全能够使用get请求从相同的URI获得响应。但是,不能更改使用补丁方法现有团队区域:-(
更新2
这似乎与斯堪的纳维亚字符“æøå”被包括在区域路径,如果我排除一切包括æ,ø或å的区域路径,我没有错误,从我的例子中并不明显......对不起! 有没有办法在json中解析,这样TFS服务器就不会中断它了?或者,这是因为我缺乏PowerShell rest api调用的效率?
请问您可以发布您的invoke-webrequest代码。 ?我们的Json是有效的,但解析似乎不同。 –
您的API示例链接应该是https://www.visualstudio.com/en-us/docs/integrate/api/work/team-field-values#update-team-field-values而不是https://www.visualstudio .com/en-us/docs/integrate/api/work/team-settings#update-a-teams-settings更新团队设置。 –
无法重现您的问题,您是否尝试了一些其他客户端,如邮递员来测试您的休息api和json body?还可以尝试用'\\ Area2'而不是'Area2 \\ Area21 \\ Area211' –