Tôi không có sẵn curl để kiểm tra ngay bây giờ nhưng bạn có thể thời trang để lấy thông tin sau.
Nhận và kiểm tra được xử lý bởi /_layouts/CheckIn.aspx
Các trang có các biến chuỗi truy vấn sau đây:
Danh sách - Một GUID để xác định danh sách hiện hành.
Tên tệp - Tên của tệp có phần mở rộng.
Nguồn - Url đầy đủ đến trang allitems.aspx trong thư viện.
Tôi đã có thể tải trang CheckIn.aspx một cách chính xác chỉ bằng cách sử dụng tham số FileName và Source và bỏ qua tham số Danh sách. Điều này là tốt bởi vì bạn không cần phải tìm ra cách để tra cứu Danh sách GUID.
Các postbacks trang CheckIn.aspx cho chính nó với các thông số hình thức sau đây để điều khiển checkin:
PostBack - boolean set là true.
CheckInAction - chuỗi thiết lập để ActionCheckin
KeepCheckout - thiết lập để 1 để giữ thanh toán và từ 0 đến tiếp tục kiểm tra trong
CheckinDescription - chuỗi văn bản
Gọi này trong curl như vậy
curl --data "PostBack = true & CheckinAction = ActionCheckin & KeepCheckout = 0 & CheckinDescription = SomeTextForCheckIn" http: // {Server của bạn Và Site} /_layouts/checkin.aspx?Source= {Full Url Để Library}/Forms/AllItems.aspx & FileName = {Doc Và Ext}
Như tôi đã nói tôi không có curl để kiểm tra nhưng tôi đã nhận này để làm việc bằng cách sử dụng tab Composer trong Fiddler 2
Tôi đang cố gắng này với curl bây giờ và có một vấn đề khiến nó hoạt động. Fiddler đang thực hiện yêu cầu dưới dạng POST. Nếu bạn cố gắng làm điều này như một yêu cầu GET, bạn sẽ nhận được một lỗi 500 nói rằng thuộc tính AllowUnsafeUpdates của SPWeb sẽ không cho phép yêu cầu này trên GET. Gửi yêu cầu dưới dạng POST sẽ sửa lỗi này.
Chỉnh sửa Tôi hiện đang kiểm tra nguồn checkin.aspx trong trình giải mã DotPeek và thấy một số tùy chọn bổ sung cho tham số ActionCheckin có thể có liên quan như ActionCheckinPublish và ActionCheckinFromClientPublish. Tôi sẽ cập nhật điều này với bất kỳ phát hiện bổ sung nào. Trang được đặt tại Microsoft.SharePoint.ApplicationPages.Checkin cho bất kỳ ai quan tâm.