public static FileInformation OpenBinaryDirect(ClientContext context, string serverRelativeUrl) { if (context == null) { throw new ArgumentNullException("context"); } if (context.HasPendingRequest) { throw new ClientRequestException(Resources.GetString("NoDirectHttpRequest")); } string requestUrl = File.MakeFullUrl(context, serverRelativeUrl); WebRequestExecutor webRequestExecutor = context.WebRequestExecutorFactory.CreateWebRequestExecutor(context, requestUrl); webRequestExecutor.RequestHeaders[HttpRequestHeader.Translate] = "f"; context.FireExecutingWebRequestEventInternal(new WebRequestEventArgs(webRequestExecutor)); webRequestExecutor.GetRequestStream().Write(new byte[0], 0, 0); webRequestExecutor.RequestMethod = "GET"; webRequestExecutor.Execute(); if (webRequestExecutor.StatusCode != HttpStatusCode.OK) { throw new ClientRequestException(Resources.GetString("RequestUnexpectedResponseWithContentTypeAndStatus", new object[] { webRequestExecutor.ResponseContentType, webRequestExecutor.StatusCode })); } string etag = webRequestExecutor.ResponseHeaders["ETag"]; Stream responseStream = webRequestExecutor.GetResponseStream(); return(new FileInformation(responseStream, etag)); }
private string ReadSoapResponse(WebRequestExecutor requestExecutor) { string soapResponse = ""; using (StreamReader sr = new StreamReader(requestExecutor.GetResponseStream())) { soapResponse = sr.ReadToEnd(); } return(ReadSoapResponse(soapResponse)); }
private FormDigestInfo GetFormDigestInfoPrivate() { string sitesAsmxUrl = this.GetSitesAsmxUrl(); WebRequestExecutor webRequestExecutor = base.WebRequestExecutorFactory.CreateWebRequestExecutor(this, sitesAsmxUrl); this.FireExecutingWebRequestEventInternal(new WebRequestEventArgs(webRequestExecutor)); webRequestExecutor.RequestContentType = "text/xml"; webRequestExecutor.RequestHeaders["SOAPAction"] = "http://schemas.microsoft.com/sharepoint/soap/GetUpdatedFormDigestInformation"; if (base.AuthenticationMode == ClientAuthenticationMode.Default) { webRequestExecutor.RequestHeaders["X-RequestForceAuthentication"] = "true"; } this.BuildGetUpdatedFormDigestInfoRequestBody(webRequestExecutor.GetRequestStream()); //Edited for .NET Core - Calling dispose does not work because now they are Async methods //webRequestExecutor.GetRequestStream().Close(); //webRequestExecutor.GetRequestStream().Dispose();// Close(); try { webRequestExecutor.Execute(); } catch (WebException webEx) { string text = this.ExtractSoapError(webEx); if (string.IsNullOrEmpty(text)) { throw; } throw new ClientRequestException(Resources.GetString("CannotContactSiteWithDetails", new object[] { base.Url, text })); } if (webRequestExecutor.StatusCode != HttpStatusCode.OK || webRequestExecutor.ResponseContentType.IndexOf("text/xml", StringComparison.OrdinalIgnoreCase) < 0) { throw new ClientRequestException(Resources.GetString("CannotContactSite", new object[] { base.Url })); } FormDigestInfo formDigestInfo = this.ParseFormDigest(webRequestExecutor.GetResponseStream()); if (formDigestInfo == null) { throw new ClientRequestException(Resources.GetString("CannotContactSite", new object[] { base.Url })); } return(formDigestInfo); }
public static JsonVkUserInfo GetUserInfo(string userIds) { return(WebRequestExecutor.GetVkUserInfoResponse($"{ApiBaseUrl}method/users.get", userIds, UserInfoFields, ApiVersion)); }
private static void SaveBinary(ClientContext context, string serverRelativeUrl, Stream stream, string etag, bool overwriteIfExists, File.SaveBinaryCheckMode checkMode) { if (context == null) { throw new ArgumentNullException("context"); } if (context.HasPendingRequest) { throw new ClientRequestException(Resources.GetString("NoDirectHttpRequest")); } string requestUrl = File.MakeFullUrl(context, serverRelativeUrl); WebRequestExecutor webRequestExecutor = context.WebRequestExecutorFactory.CreateWebRequestExecutor(context, requestUrl); webRequestExecutor.RequestMethod = "PUT"; if (checkMode == File.SaveBinaryCheckMode.ETag) { if (!string.IsNullOrEmpty(etag)) { webRequestExecutor.RequestHeaders[HttpRequestHeader.IfMatch] = etag; } } else if (!overwriteIfExists) { webRequestExecutor.RequestHeaders[HttpRequestHeader.IfNoneMatch] = "*"; } context.FireExecutingWebRequestEventInternal(new WebRequestEventArgs(webRequestExecutor)); Stream requestStream = webRequestExecutor.GetRequestStream(); byte[] buffer = new byte[1024]; int count; while ((count = stream.Read(buffer, 0, 1024)) > 0) { requestStream.Write(buffer, 0, count); } requestStream.Flush(); //Edited for .NET Core requestStream.Dispose();// Close(); try { webRequestExecutor.Execute(); if (webRequestExecutor.StatusCode != HttpStatusCode.Created && webRequestExecutor.StatusCode != HttpStatusCode.OK) { throw new ClientRequestException(Resources.GetString("RequestUnexpectedResponseWithContentTypeAndStatus", new object[] { webRequestExecutor.ResponseContentType, webRequestExecutor.StatusCode })); } } catch (WebException ex) { HttpWebResponse httpWebResponse = ex.Response as HttpWebResponse; if (httpWebResponse == null || httpWebResponse.StatusCode != HttpStatusCode.PreconditionFailed) { throw; } if (checkMode == File.SaveBinaryCheckMode.ETag) { throw new ClientRequestException(Resources.GetString("ETagNotMatch")); } throw new ClientRequestException(Resources.GetString("FileAlreadyExists")); } }
public ComposedWebRequestExecutor(WebRequestExecutor executor) { Executor = executor; }
/// <summary> /// Initializes a new instance of the <see cref="Sys.WebForms.EndRequestEventArgs"/> class. /// </summary> /// <param name="error">An error object.</param> /// <param name="dataItems">An object containing data items.</param> /// <param name="response">An object of type Sys.Net.WebRequestExecutor</param> public EndRequestEventArgs(Exception error, Dictionary dataItems, WebRequestExecutor response) { }
/// <summary> /// Initializes a new instance of the <see cref="Sys.WebForms.InitializeRequestEventArgs"/> class. /// </summary> /// <param name="request">A Sys.Net.WebRequest object that represents the Web request for the EventArgs object.</param> /// <param name="postBackElement">The postback element that initiated the asynchronous postback.</param> /// <param name="updatePanelsToUpdate">(Optional) A list of UniqueID values for UpdatePanel controls that are being requested to update their rendering by the client. Server-side processing might update additional UpdatePanel controls.</param> public InitializeRequestEventArgs(WebRequestExecutor request, Element postBackElement, string[] updatePanelsToUpdate) { }