나머지 API 및 powershell을 사용하여 TFS 2017 온 - 프레미스 서버에서 팀과 관련된 영역을 설정하려고합니다. 내 URI를 호출 할 때TFS 팀의 영역을 설정할 때 매개 변수 'patch'에 대한 ArgumentNullException
는
로 JSON 패키지로 API example 설명, 나는 다음과 같은 오류 반환받을 :
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 } ] }
업데이트
나는 $setTeamAreaPathUri
위의 HTTP URI에 해당하는 파워 쉘의 호출-RestMethod cmdlet을
Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri -UseDefaultCredentials -Body $json -ContentType "application/json"
와 URI 위를 호출하고 있습니다. 패치가 아닌 웹 요청 방법으로 post
을 사용해야합니까?
get 요청을 사용하여 동일한 URI에서 응답을 완벽하게받을 수 있습니다. 그러나 수없는이 :-(패치 방법을 사용하여 기존의 팀 영역을 변경하는
업데이트 2
이 스칸디나비아 문자 'æøå'지역 경로에 포함 된 관련 같다. 나는 모든을 제외하는 경우 æ, ø 또는 å을 포함하는 영역 경로, 오류가 발생하지 않습니다. 내 예제에서 확실하지 않았습니다 ... 죄송합니다! json에서 구문 분석하여 TFS 서버가 중단되지 않는 방법이 있습니까? 또는 PowerShell 나머지 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- 팀의 설정을 업데이트하는 설정입니다. –
문제를 재현 할 수 없습니다. 휴식 APi 및 JSON 시체를 테스트하기 위해 우편 배달부와 같은 일부 휴식 클라이언트를 사용해 보셨습니까?또한'Area2 \\ Area21 \\ Area211' 대신'\\ Area2'를 시도하십시오 –