3.4.15
Create Site SharePoint Rest C# CSOM
private static string GetFormDigest(string token, string hdnHostWeb)
{
/* Retrieve a form digest, which is required for creating a new list item */
string endpoint = hdnHostWeb + "/_api/contextinfo";
HttpWebRequest digestRequest = (HttpWebRequest)HttpWebRequest.Create(endpoint);
digestRequest.Headers.Add("Authorization", "Bearer " + token);
digestRequest.Method = "POST";
digestRequest.ContentLength = 0;
HttpWebResponse digestResponse = (HttpWebResponse)digestRequest.GetResponse();
XDocument responseDoc = XDocument.Load(digestResponse.GetResponseStream());
XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
string formDigest = responseDoc.Descendants(d + "FormDigestValue").First().Value;
return formDigest;
}
public static Web CreateSite(string token, ClientContext cc, Web currentWeb, string template, int langue, bool heritage, string description, string titre, string url)
{
Web web = null;
try
{
#region test
string itemXML = "{'parameters': {'__metadata': {'type': 'SP.WebInfoCreationInformation' },'Url': '" + url + "','Title': '" + titre + "','Description': '" + description + "','Language':" + langue + ",'WebTemplate':'" + template + "','UseUniquePermissions':'" + !heritage + "'}}";
HttpWebRequest restRequest = (HttpWebRequest)HttpWebRequest.Create(currentWeb.Url + "/_api/web/webinfos/add");
restRequest.Headers.Add("Authorization", "Bearer " + token);
restRequest.Credentials = CredentialCache.DefaultCredentials;
restRequest.Method = "POST";
restRequest.Headers["X-RequestDigest"] = GetFormDigest(token, currentWeb.Url);
restRequest.Accept = "application/json;odata=verbose";
restRequest.ContentType = "application/json;odata=verbose";
restRequest.ContentLength = itemXML.Length;
StreamWriter sw = new StreamWriter(restRequest.GetRequestStream());
sw.Write(itemXML);
sw.Flush();
//Get response
HttpWebResponse restResponse = (HttpWebResponse)restRequest.GetResponse();
StreamReader restStream = new StreamReader(restResponse.GetResponseStream());
#endregion
cc.Load(cc.Web.Webs);
cc.ExecuteQuery();
foreach (Web wb in cc.Web.Webs)
{
if (wb.Title == titre || wb.Url == url)
{
web = wb;
}
}
.....
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment