2011-01-04 39 views
16

Tôi cần tích hợp tập lệnh PowerShell hiện có để cập nhật trạng thái của nó thông qua dịch vụ web an toàn trả về json. Tôi là một chút mới để powershell nhưng tôi đã có thể tìm thấy đối tượng System.Net.WebRequest làm một cái gì đó như sau.Tôi làm cách nào để sử dụng Powershell để truy cập webservice an toàn?

$a = [System.Net.WebRequest]::Create("http://intranet/service/object/") 
$a.Method = "GET" 
$a.GetResponse() 

mà trả về một mảng các đối tượng json

[ {id:1}, {id:2}] // etc 

Tôi không chắc chắn nơi để đi từ đây và làm thế nào để phân tích này thành một kiểu dữ liệu bản địa. Tôi cũng muốn có thể đăng và xóa.

Mọi con trỏ? Và có bất kỳ thư viện json/phần còn lại hoặc lệnh cho phép?

+0

http://duncan-cragg.org/blog/post/getting-data-rest-dialogues/ – reconbot

Trả lời

3

Bạn có thể sử dụng DataContractJsonSerializer, một phần của thư viện chuẩn .Net.

+5

bất kỳ liên kết tốt nào để sử dụng nó trong PowerShell? – JakeRobinson

2

@Jaykul đã viết một bộ tốt đẹp của các chức năng RESTful là một phần của kịch bản dreamwiki Mindtouch mình ở đây: http://poshcode.org/691

28

gì bạn muốn PowerShell và nó Invoke-RestMethod, ConvertTo-Json là và Lệnh ghép ngắn ConvertFrom-Json. Mã của bạn sẽ trông giống như sau:

$ stuff = invoke-RestMethod -Uri $ url -Method Get;

và thậm chí không cần phải gọi ConvertFrom-Json vào kết quả $ stuff => nó đã ở định dạng không phải chuỗi có thể sử dụng được.

Đối với POSTS | đặt, chỉ cần sử dụng PowerShell băm và mảng cấu trúc dữ liệu của bạn và sau đó gọi ConvertTo-Json vào nó trước khi đi qua nó để gọi-RestMethod hoặc gọi-WebRequest:

invoke-WebRequest - Uri $ url -ContentType application/json -Method Post -Body $ objectConvertedToJson

Xem http://technet.microsoft.com/en-us/Library/hh849971.aspx để biết chi tiết.

+1

Bạn hoàn toàn chính xác tuy nhiên PowerShell 3 vẫn còn khá mới và không được triển khai ở nơi tôi làm việc. – reconbot

+0

rực rỡ, cảm ơn – Dave

Các vấn đề liên quan