Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="accessToken">Oauth 1.0a AccessToken</param>
        /// <param name="accessTokenSecret">Oauth 1.0a AccessTokenSecret</param>
        public OpenStreetMapClient(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret)
        {
            var accessData = new OpenStreetMapAccessModel(consumerKey, consumerSecret, accessToken, accessTokenSecret);
            var httpClient = new HttpClient();

            _osmHandler = new OpenStreetMapHandler(httpClient, accessData);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="accessToken">Oauth 1.0a AccessToken</param>
        /// <param name="accessTokenSecret">Oauth 1.0a AccessTokenSecret</param>
        public OpenStreetMapClient(string accessToken, string accessTokenSecret)
        {
            var accessData = new OpenStreetMapAccessModel(ConfigurationManager.AppSettings["appkey"], ConfigurationManager.AppSettings["appsecret"], accessToken, accessTokenSecret);
            var httpClient = new HttpClient();

            osmHandler = new OpenStreetMapHandler(httpClient, accessData);
        }
        /// <summary>
        /// Get HTTP requestMessage with OAuth 1.0a protocol for access to the OpenStreetMap API
        /// </summary>
        /// <param name="accessData"></param>
        /// <param name="url"></param>
        /// <param name="method"></param>
        /// <returns></returns>
        public static HttpRequestMessage getHttpRequestMessage(OpenStreetMapAccessModel accessData, string url, HttpMethod method)
        {
            var nonce = Guid.NewGuid().ToString("N");

            var authorizationParts = new SortedDictionary <string, string>
            {
                { "oauth_consumer_key", accessData.AppKey },
                { "oauth_nonce", nonce },
                { "oauth_signature_method", "HMAC-SHA1" },
                { "oauth_token", accessData.AccessToken },
                { "oauth_timestamp", GenerateTimeStamp() },
                { "oauth_version", "1.0" },
            };

            var parameterBuilder = new StringBuilder();

            foreach (var authorizationKey in authorizationParts)
            {
                parameterBuilder.AppendFormat("{0}={1}&", Uri.EscapeDataString(authorizationKey.Key), Uri.EscapeDataString(authorizationKey.Value));
            }
            parameterBuilder.Length--;
            var parameterString = parameterBuilder.ToString();

            var canonicalRequestBuilder = new StringBuilder();

            canonicalRequestBuilder.Append(method.Method);
            canonicalRequestBuilder.Append("&");
            canonicalRequestBuilder.Append(Uri.EscapeDataString(url));
            canonicalRequestBuilder.Append("&");
            canonicalRequestBuilder.Append(Uri.EscapeDataString(parameterString));

            var signature = ComputeSignature(accessData.AppSecret, accessData.AccessTokenSecret, canonicalRequestBuilder.ToString());

            authorizationParts.Add("oauth_signature", signature);

            var authorizationHeaderBuilder = new StringBuilder();

            authorizationHeaderBuilder.Append("OAuth ");
            foreach (var authorizationPart in authorizationParts)
            {
                authorizationHeaderBuilder.AppendFormat(
                    "{0}=\"{1}\", ", authorizationPart.Key, Uri.EscapeDataString(authorizationPart.Value));
            }
            authorizationHeaderBuilder.Length = authorizationHeaderBuilder.Length - 2;

            var request = new HttpRequestMessage(method, url);

            request.Headers.Add("Authorization", authorizationHeaderBuilder.ToString());

            return(request);
        }
Exemplo n.º 4
0
 public OpenStreetMapHandler(HttpClient httpClient, OpenStreetMapAccessModel accessData)
 {
     _httpClient = httpClient;
     _accessData = accessData;
 }
 public OpenStreetMapHandler(HttpClient httpClient, OpenStreetMapAccessModel accessData)
 {
     _httpClient        = httpClient;
     _accessData        = accessData;
     _useDevelopmentApi = false;
 }