示例#1
0
        /// <summary>Attempts to get data from a web request.</summary>
        /// <param name="url">The URL for the request.</param>
        /// <param name="method">The OneAll supported HTTP method to use.</param>
        /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
        /// <param name="data">The raw data to be posted.</param>
        /// <param name="callBack">The call-back to invoke after the request is complete, if null this method is synchronous.</param>
        /// <param name="state">The state information, ignored if callBack is null.</param>
        internal static byte[] Post(Uri url, OneAllMethod method, Credential creds, byte[] data, BinaryReceivedHandler callBack, object state)
        {
            byte[] retVal = null;

            if (callBack == null) { retVal = PostSync(url, method, creds, data); }
            else { PostAsync(url, method, creds, data, callBack, state); }

            return retVal;
        }
示例#2
0
 /// <summary>Attempts to get data from a web request.</summary>
 /// <param name="request">The HTTP web request.</param>
 /// <param name="method">The OneAll supported HTTP method to use.</param>
 /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
 /// <param name="callBack">The call-back to invoke after the request is complete.</param>
 /// <param name="state">The initial state object provided.</param>
 private static void GetAsync(HttpWebRequest request, OneAllMethod method, Credential creds, BinaryReceivedHandler callBack, object state)
 {
     request.SetHTTPMethod(method);
     request.SetBasicAuth(creds);
     request.BeginGetResponse(OnRequestCompleted, new BinaryWebClientState()
     {
         Request = request,
         Callback = callBack,
         State = state
     });
 }
示例#3
0
        /// <summary>Sets the request to use a basic authentication credential and header.</summary>
        /// <param name="request">The request.</param>
        /// <param name="cred">The credential.</param>
        internal static void SetBasicAuth(this HttpWebRequest request, Credential cred)
        {
            if (request != null && cred != null && cred.IsValid())
            {
                CredentialCache cache = new CredentialCache();
                NetworkCredential realCred = new NetworkCredential(cred.PublicKey, cred.PrivateKey.ToUnsecureString());
                cache.Add(request.RequestUri, OneAllConstants.CRED_BASIC, realCred);

                request.UseDefaultCredentials = false;
                request.Credentials = cache;
                request.UserAgent = string.Format(CultureInfo.InvariantCulture, OneAllConstants.FORMAT_USER_AGENT, Assembly.GetExecutingAssembly().GetName().Version.ToString(4));
                request.Headers.Add(OneAllConstants.HEAD_AUTHORIZATION, string.Format(CultureInfo.InvariantCulture, OneAllConstants.HEAD_BASIC,
                    Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format(CultureInfo.InvariantCulture,
                    OneAllConstants.HEAD_BASIC_CRED, realCred.UserName, realCred.Password)))));
            }
        }
示例#4
0
 /// <summary>Attempts to get data from a web request.</summary>
 /// <param name="request">The HTTP web request.</param>
 /// <param name="method">The OneAll supported HTTP method to use.</param>
 /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
 /// <returns>The binary data from the request.</returns>
 private static byte[] GetSync(HttpWebRequest request, OneAllMethod method, Credential creds)
 {
     request.SetHTTPMethod(method);
     request.SetBasicAuth(creds);
     return ReadResponse(request);
 }
示例#5
0
 /// <summary>Attempts to get data from a web request.</summary>
 /// <param name="url">The URL for the request.</param>
 /// <param name="method">The OneAll supported HTTP method to use.</param>
 /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
 /// <returns>The binary data from the request.</returns>
 private static byte[] GetSync(Uri url, OneAllMethod method, Credential creds)
 {
     return GetSync(HttpWebRequest.Create(url) as HttpWebRequest, method, creds);
 }
示例#6
0
 /// <summary>Attempts to get data from a web request.</summary>
 /// <param name="url">The URL for the request.</param>
 /// <param name="method">The OneAll supported HTTP method to use.</param>
 /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
 /// <param name="callBack">The call-back to invoke after the request is complete.</param>
 /// <param name="state">The state information.</param>
 private static void GetAsync(Uri url, OneAllMethod method, Credential creds, BinaryReceivedHandler callBack, object state)
 {
     GetAsync(HttpWebRequest.Create(url) as HttpWebRequest, method, creds, callBack, state);
 }
示例#7
0
        /// <summary>Attempts to get data from a web request.</summary>
        /// <param name="request">The HTTP web request.</param>
        /// <param name="method">The OneAll supported HTTP method to use.</param>
        /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
        /// <param name="data">The raw data to be posted.</param>
        /// <returns>The binary data from the request.</returns>
        private static byte[] PostSync(HttpWebRequest request, OneAllMethod method, Credential creds, byte[] data)
        {
            request.ContentType = OneAllConstants.HTTP_CONTENTTYPE_FORMURLENCODE;
            request.SetHTTPMethod(method);
            request.SetBasicAuth(creds);

            using (Stream stream = request.GetRequestStream())
            {
                byte[] buffer = new byte[data.Length];
                Array.Copy(data, buffer, buffer.Length);

                stream.Write(buffer, 0, buffer.Length);
                stream.Flush();

                Array.Clear(buffer, 0, buffer.Length);
                buffer = null;
            }

            return ReadResponse(request);
        }
示例#8
0
 /// <summary>Attempts to get data from a web request.</summary>
 /// <param name="url">The URL for the request.</param>
 /// <param name="method">The OneAll supported HTTP method to use.</param>
 /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
 /// <param name="data">The raw data to be posted.</param>
 /// <returns>The binary data from the request.</returns>
 private static byte[] PostSync(Uri url, OneAllMethod method, Credential creds, byte[] data)
 {
     return PostSync(HttpWebRequest.Create(url) as HttpWebRequest, method, creds, data);
 }
示例#9
0
        /// <summary>Attempts to get data from a web request.</summary>
        /// <param name="request">The HTTP web request.</param>
        /// <param name="method">The OneAll supported HTTP method to use.</param>
        /// <param name="creds">The <see cref="Credential"/> used to authenticate the call, or null for calls not requiring authentication.</param>
        /// <param name="data">The raw data to be posted.</param>
        /// <param name="callBack">The call-back to invoke after the request is complete.</param>
        /// <param name="state">The initial state object provided.</param>
        private static void PostAsync(HttpWebRequest request, OneAllMethod method, Credential creds, byte[] data, BinaryReceivedHandler callBack, object state)
        {
            request.ContentType = OneAllConstants.HTTP_CONTENTTYPE_FORMURLENCODE;
            request.SetHTTPMethod(method);
            request.SetBasicAuth(creds);

            request.BeginGetRequestStream(OnRequestStreamObtained, new BinaryWebClientState()
            {
                Request = request,
                Callback = callBack,
                State = state,
                Data = data
            });
        }