2014-05-04 47 views
3

我正在嘗試編寫一些需要獲取書籍信息的應用程序。這就是我使用Google Book Api的原因。官方圖書館不適用於WP8.1,所以我正試圖在互聯網的幫助下自己做所有事情。這是我寫的:Windows Phone 8.1 Google Book REST使用HttpClient進行Api調用:HRESULT:0x80072EFD

public async Task<RootObject> GetBooks(string query) 
    { 

     using (HttpClient httpClient = new HttpClient()) 
     { 
      HttpResponseMessage response = new HttpResponseMessage(); 

      string requestUri = googleApiUri + "q=" + query.Replace(" ", "+") + "&maxResults=10&orderBy=relevance&printType=books&projection=lite"; 
      string jsonString = ""; 
      try 
      { 
       jsonString = await httpClient.GetStringAsync(new Uri(requestUri)); 
      } 
      catch (Exception ex) 
      { 
       string message = "Error = " + ex.HResult.ToString("X") + 
       " Message: " + ex.Message; 
      } 

      return ResponseToJson(jsonString); 

     } 
    } 

    private RootObject ResponseToJson(string message) 
    { 
     return JsonConvert.DeserializeObject<RootObject>(message); 
    } 

然而,呼叫httpClient.GetStringAsync拋出我的錯誤:「從HRESULT異常:0x80072EFD」。我不知道爲什麼會發生這種情況,並且我無法在互聯網上找到有關此類異常情況的任何信息。我用httpClient做錯了什麼?我會非常感謝任何幫助!

謝謝您提前!

BestRegards, 羅馬

+0

這就是ERROR_WINHTTP_CANNOT_CONNECT,它是基本的。檢查網址。 –

+0

這是我的第一個想法,但是當我將該URL複製到瀏覽器中時,它工作得很好,並返回我需要的json結果 –

+0

什麼瀏覽器?那個在手機或桌面上?它需要在電話上工作。或者模擬器。如果檢查出來,那麼你被丟失的權限被阻止。 –

回答

0

你有suffisent授權您的應用程序?通常,在項目的屬性中有一個名爲WMAppManifest.xml的文件。打開它並轉到「功能」選項卡。確保選中ID_CAP_NETWORKING。這將爲您的應用授予訪問Internet的權限。

+0

謝謝你的迴應!但是,在WP8.1中,默認情況下會檢查Internet功能。我不知道它是否重要,但是我正在測試我的應用程序,並且還檢查了Internet功能。 –