【发布时间】:2014-04-04 08:48:12
【问题描述】:
首先感谢您的帮助。我有一个让我发疯的问题...
事实上,我在我的 Web 服务中发出了一个 GET 请求,并且它运行良好,有一次。
如果我之后执行相同的请求,则该请求不会到达我的 Web 服务。我收到的结果与第一个相同......这是一个错误,因为我在两个请求之间进行了一些更新。预期的结果不同。如果我在 windows phone 上重新启动应用程序,结果会更新。
就我而言,目标是获取我的联系人的位置。尽管我更新了他们的职位,但我收到了相同的职位。
private void Button_Click(object sender, RoutedEventArgs e)
{
System.Uri targetUri = new System.Uri("http://My-Ip-Address:8080/WhereAreMyFriends/webresources/positions/getMyContactsPositions/0660066000");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
request.Method = "GET";
request.Accept = "application/xml";
request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);
}
private void ReadWebRequestCallback(IAsyncResult callbackResult)
{
try
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);
if (myResponse.StatusCode == HttpStatusCode.OK)
{
using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
{
string results = httpwebStreamReader.ReadToEnd();
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(results);//NavigationService.Navigate(new Uri("/CodeVerification.xaml", UriKind.Relative));
});
}
myResponse.Close();
}
else
{
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show("Status Code incorrect");
myResponse.Close();
});
}
}
catch (Exception e)
{
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(e.Message);
});
}
}
【问题讨论】:
-
对我来说听起来像是缓存。在 URL 中添加随机参数或设置:response.setHeader("Cache-Control", "no-cache");
-
是的,谢谢,现在效果更好了:)
标签: c# web-services get windows-phone httpwebrequest