1

我想检查用户提供的 URL 是否有效。因为如果不是,例如“ http://www.stackoverflow ”,那么它将在以后使程序崩溃。我尝试使用 Web 响应,但找不到 Irequest.GetResponse(); 的定义;

 try
            {
                string url = HomepageTextBox.Text;
                if (url != "")
                {
                    WebRequest Irequest = WebRequest.Create(url);
                    WebResponse Iresponse = Irequest.GetResponse();

                    if (Iresponse != null)
                    {

                    }
                }
                else
                {
                    HomepageTextBox.Text = "http://www.google.com";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Invalid URL");
            }

先感谢您 :)

如果您需要更多详细信息,请发表评论,我很乐意进一步详细解释:)

4

1 回答 1

0

我记得有同样的问题,在查看 MSDN 网页后,我认为它是不正确的。在 WP8.0 中没有 GetResponse(),但在 WP8.1 中有 GetResponseAsync()。

所以我决定改用 HttpWebRequest 并使用 BeginGetResponse/EndGetResponse——据我所知,你必须使用回调。这是一个简单的例子。


public void GetWebAddress(string web_address)
{
    HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(web_address);
    if (request != null) request.BeginGetResponse(MyHttpCallback, request);            
}

void MyHttpCallback(IAsyncResult result)
{
    HttpWebRequest request = result.AsyncState as HttpWebRequest;
    if (request != null)
    {
        try
        {
            // if you're using 8.1 try enclosing theses lines with "using"
            // there is no .Close()

            WebResponse response = request.EndGetResponse(result);

            StreamReader reader;
            reader = new StreamReader(response.GetResponseStream());

            string responseText = reader.ReadToEnd();
            // reponseText now contains the html/text of the page


            reader.Close();
            response.Close();
        }
        catch (WebException e)
        {
            // your errors are here, set your flags
            string error_string = e.Message;
        }
    }
}
于 2014-08-09T01:35:00.810 回答