访问带有变量网址的URL,即Windows Phone

时间:2012-03-24 17:52:33

标签: windows-phone-7 windows-phone

我有一个如下所示的网址: 由于合同原因,网址被取消

            WebClient webClient = new WebClient();
            Uri uri = new Uri("http://www.URLhere.aspx?stopid=4556");
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler
            (webClient_OpenReadCompleted);
            webClient.OpenReadAsync(uri);

我需要找到一种方法来改变结尾部分,所以将4556从文本块更改为另一个文本,这样当应用程序发送请求时它会找到整个部分。

我以为你可以这样做:

            WebClient webClient = new WebClient();
            Uri uri = new Uri("http://www.URLhere.aspx?stopid=" + stopId);
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler
            (webClient_OpenReadCompleted);
            webClient.OpenReadAsync(uri);

如何做到这一点?

编辑: 当我执行上面的代码时,它返回作为空引用,所以我认为它没有得到文本框中的文本。

3 个答案:

答案 0 :(得分:1)

听起来你错过了变量的编码。

var myvar = "the simpsons";
Uri myUri = new Uri("http://www.URLhere.aspx?stopid=" + HttpUtility.UrlEncode(myvar));

请参阅HttpUtility.UrlEncode Method - MSDN

答案 1 :(得分:0)

之间没有区别
Uri uri = new Uri("http://www.URLhere.aspx?stopid=4556");

Uri uri = new Uri("http://www.URLhere.aspx?stopid=" + stopId);

所以我真的不知道你的问题是什么

答案 2 :(得分:0)

亨利 如果我理解你的问题是正确的,我想你想把TextBox(而不是TextBlock)中的值附加到URI。如果这是正确的并且你正在使用MVVM,你可以将TextBox绑定到ViewModel上的公共属性(让我们称之为TextBoxProp)

private string _textBoxProp;
public string TextBoxProp
{
   get{return _textBoxProp;}
set
{
   _textBoxProp = value;
   RaisePropertyChanged("TextBoxProp");
}
}

然后按如下方式创建URI:

Uri uri = new Uri(String.Format("http://www.URLhere.aspx?stopid={0}", TextBoxProp));

确保在XAML中绑定到属性时将模式设置为TwoWay。 我希望有帮助