簡體   English   中英

使用httpWebResponse時我似乎無法退回任何東西

[英]I cannot seem to get anything back when using 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);

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

結果只是我要向其輸出Web請求結果的全局字符串。

問題是我一直在向結果中輸出空值,並且已經檢查了網址並且它是正確的並且應該具有輸出。

關於此問題的任何想法,或者如果您能指出正確的方向,我將不勝感激

  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(); } 

感謝您的幫助,我設法使用以下方法解決了該問題:

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();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM