1

私は次のコードを使用しています:

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リクエストの結果を出力するグローバル文字列にすぎません。

問題は、結果にnull値が出力され続けることと、Webアドレスを確認したことです。これは正しく、出力されるはずです。

これに関するアイデア、またはあなたが私を正しい方向に向けることができれば、私は感謝するでしょう

4

2 に答える 2

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();
    }
    
于 2013-03-26T16:50:21.653 に答える
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();
    }
于 2013-03-29T12:03:35.597 に答える