我想检查一下用户提供的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");
}
提前谢谢你:)
如果您需要更多详细信息,请发表评论,我将很乐意进一步详细解释:)
答案 0 :(得分: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;
}
}
}