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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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"));
            }
        }
Esempio n. 6
0
 public ComposedWebRequestExecutor(WebRequestExecutor executor)
 {
     Executor = executor;
 }
Esempio n. 7
0
 /// <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)
 {
 }