2016-06-22 4 views
0

タイトルが言うとおり。私はApprentice C#開発者です。私は本質的にSharePoint用の時計用Webパーツを作成しようとしています。C#でGoogle Timezone APIを使用するにはどうすればよいですか?

いくつかの例を試しましたが、私のGoogle-fuが失敗したか、ここで何か間違ったことをしています。

したがって、C#を使用してGoogle TimeZone APIを呼び出して使用するための収益を保存する簡単な方法はありますか?

EDIT:私は現在、プログラムを実行するとすぐにそのエラーを使用しています。

public static DateTime GetLocalDateTime(double latitude, double longitude, DateTime utcDate) 
     { 
      var client = new RestClient("https://maps.googleapis.com"); 
      var request = new RestRequest("maps/api/timezone/json", Method.GET); 
      request.AddParameter("location", latitude + "," + longitude); 
      request.AddParameter("timestamp", utcDate.ToTimestamp()); 
      request.AddParameter("sensor", "false"); 
      var response = client.Execute<GoogleTimeZone>(request); 

      return utcDate.AddSeconds(response.Data.rawOffset + response.Data.dstOffset); 
     } 

     public static void Main() 
     { 
      var myDateTime = GetLocalDateTime(33.8323, -117.8803, DateTime.UtcNow); 
      Console.WriteLine(myDateTime.ToString()); 
     } 
    } 

    public class GoogleTimeZone 
    { 
     public double dstOffset { get; set; } 
     public double rawOffset { get; set; } 
     public string status { get; set; } 
     public string timeZoneId { get; set; } 
     public string timeZoneName { get; set; } 
    } 

    public static class ExtensionMethods 
    { 
     public static double ToTimestamp(this DateTime date) 
     { 
      DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
      TimeSpan diff = date.ToUniversalTime() - origin; 
      return Math.Floor(diff.TotalSeconds); 
     } 
    } 

答えて

0

私は自分自身でこれをやっており、実際には簡単です。 apiを呼び出すurlで、戻り値の型としてJSONを選択します。次に、Newtonsoft.JsonまたはJSON.Netを使用して、httpリクエストのレスポンスを自分のGoogleTimeZoneオブジェクトに逆シリアル化します。そこから、プロパティに通常アクセスできます。以下はapiを呼び出し、nugetのNewtonsoft.Jsonを使用してJSONを変換するためのコードスニペットです。

  //var client = new HttpClient(); 
      //client.DefaultRequestHeaders.Accept.Clear(); 
      //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      //var response = client.GetStringAsync(requestUri).Result; 
      //var result = JsonConvert.DeserializeObject(response.ToString()); 
関連する問題