2014-02-14 22 views
1

我打算在Bing地圖API的基礎上獲取國家和地區的一個點,我創建了一個試用公共網絡密鑰並使用它...... 但它使我得到以下響應 **bing地圖的未經授權的響應

「版權所有©2014 Microsoft及其供應商。保留所有權利。這個API不能訪問,內容和任何結果,不得使用,複製或傳播的未經明確的微軟書面許可,任何方式公司。」

** 當我在我的chrome瀏覽器中輸入URL時,我得到了正確的響應......但是在調試中,我收到了該消息。

這是我的主要方法

try 
      { 
       Uri locationsRequest = CreateRequest(query,key); 
       Response locationsResponse = MakeRequest(locationsRequest); 
       ProcessResponse(locationsResponse); 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.Message); 
       Console.Read(); 
      } 

有我的網址創建功能

public static Uri CreateRequest(string queryString, string BingMapsKey) 
    { 
     Uri UrlRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", queryString, BingMapsKey)); 
     return (UrlRequest); 
    } 

和THAS我ersponse功能

  public static Response MakeRequest(Uri requestUrl) 
    { 
     try 
     { 

      HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; 
      using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
      { 
       if (response.StatusCode != HttpStatusCode.OK) 
        throw new Exception(String.Format(
        "Server error (HTTP {0}: {1}).", 
        response.StatusCode, 
        response.StatusDescription)); 
       DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Response)); 
       object objResponse = jsonSerializer.ReadObject(response.GetResponseStream()); 
       Response jsonResponse 
       = objResponse as Response; 
       return jsonResponse; 
      } 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
      return null; 
     } 

    } 

回答

0

我知道這是有點晚了。但是我遇到了同樣的問題,我發現的解決方案不是代碼,而是數據。確保您的queryString與您發送給Bing Maps的VirtualEarth URL結合使用時是有效的URL。