/// <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); }
/// <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); }
public OpenStreetMapHandler(HttpClient httpClient, OpenStreetMapAccessModel accessData) { _httpClient = httpClient; _accessData = accessData; }
public OpenStreetMapHandler(HttpClient httpClient, OpenStreetMapAccessModel accessData) { _httpClient = httpClient; _accessData = accessData; _useDevelopmentApi = false; }