2013-03-26 62 views
1

當我用下面的代碼:我似乎無法得到任何東西使用httpWebResponse

var request = (HttpWebRequest)WebRequest.Create(new Uri(addy)); 
request.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))"; 
request.BeginGetResponse(
    r => 
    { 
     var httpRequest = (HttpWebRequest)r.AsyncState; 
     var httpResponse = (HttpWebResponse)httpRequest.EndGetResponse(r); 

     using (var reader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      var response = reader.ReadToEnd(); 
      results = (String)response; 
     } 
    }, request); 

阿迪是:http://maps.googleapis.com/maps/api/geocode/xml?address=limavady&sensor=false

和結果僅僅是一個全球性的字符串,而我要輸出的結果的網絡請求。

問題是我不斷得到一個空值輸出結果,我檢查了網址,它是正確的,應該有輸出。

在這個任何想法或者,如果你能在正確的方向指向我,我會很感激

回答

0

感謝您的幫助,我設法使用來解決該問題如下:

WebClient webClient = new WebClient(); 
     webClient.OpenReadAsync(new Uri(addy)); 
     webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted); 

    } 

    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     var reader = new StreamReader(e.Result); 
     results = reader.ReadToEnd(); 
    } 
0
  1. 您所請求的頁面發送您的數據與Content-Encoding: gzip。將NuGet軟件包SharpZipLib.WindowsPhone7添加到您的項目中,並在下面查看我的示例代碼。
  2. 確保您聲明瞭ID_CAP_NETWORKING功能。
  3. 支票HttpWebResponse.StatusCode財產。

    static Stream responseStream(this HttpWebResponse resp) 
    { 
        if(null == resp) return null; 
    
        string enc = resp.Headers[ HttpRequestHeader.ContentEncoding ]; 
        if(!string.IsNullOrEmpty(enc)) 
        { 
         enc = enc.ToLower(); 
         if(enc == "gzip") 
          return new GZipInputStream(resp.GetResponseStream()); 
        } 
    
        return resp.GetResponseStream(); 
    } 
    
相關問題