Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone REST呼叫问题_C#_Json_Wcf_Windows Phone 7_Rest - Fatal编程技术网

C# Windows Phone REST呼叫问题

C# Windows Phone REST呼叫问题,c#,json,wcf,windows-phone-7,rest,C#,Json,Wcf,Windows Phone 7,Rest,我有一个Windows Phone项目,它正在获取一个对象的列表,我使用REST从一个Web服务中调用了该对象的朋友。整个连接部分第一次工作正常,第二次出现故障。即使我更改了数据库中的值,我也从方法中获得相同的值。这里有一个例子 用户进入一个页面 使用WCF服务从数据库中获取正确的值 我手动更改数据库中的值 用户再次进入页面,并再次启动获取数据的方法,但它仍然会得到与第一次从webservice获取数据相同的结果 有什么想法吗 代码: HttpWebRequest请求; 受保护的覆盖无效On

我有一个Windows Phone项目,它正在获取一个对象的列表,我使用REST从一个Web服务中调用了该对象的朋友。整个连接部分第一次工作正常,第二次出现故障。即使我更改了数据库中的值,我也从方法中获得相同的值。这里有一个例子

  • 用户进入一个页面
  • 使用WCF服务从数据库中获取正确的值
  • 我手动更改数据库中的值
  • 用户再次进入页面,并再次启动获取数据的方法,但它仍然会得到与第一次从webservice获取数据相同的结果
有什么想法吗

代码:

HttpWebRequest请求;
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
更新数据();
}
公共void UpdateData()
{
((App)App.Current.ShowProgressBar();
字符串uri=App.SERVICE_uri+“/GetFriends?userid=“+App.CurrentUserId;
request=(HttpWebRequest)HttpWebRequest.Create(新Uri(Uri));
BeginGetResponse(新的异步回调(GetFriendsReadCallback),request);
}
私有void GetFriendsReadCallback(IAsyncResult asynchronousResult)
{
列出朋友;
HttpWebRequest请求=(HttpWebRequest)asynchronousResult.AsynchState;
HttpWebResponse=(HttpWebResponse)request.EndGetResponse(asynchronousResult);
使用(StreamReader streamReader1=新的StreamReader(response.GetResponseStream())
{
字符串resultString=streamReader1.ReadToEnd();
var ser=新数据契约JSONSerializer(类型(列表));
var stream=newmemoryStream(Encoding.Unicode.GetBytes(resultString));
DataContractJsonSerializer jsonSerializer=新的DataContractJsonSerializer(类型(列表));
friends=(列表)jsonSerializer.ReadObject(流);
}

我会在emulator中使用fiddler2操作运行此操作-检查通过http发送的id,以确定是否第二次调用,以及是否返回了正确的答案。一旦知道问题是客户端还是服务器端,然后使用断点开始调试-首先拾取的错误值在哪里。

在具有fiddler2操作的仿真器中运行此操作-检查通过http发送的id,以确定是否第二次调用,以及是否返回了正确的答案。一旦知道问题是客户端还是服务器端,然后使用断点开始调试-第一次提取的错误值在哪里。

您正在运行很可能是缓存问题。请更改REST服务以禁用缓存:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
如果您无权访问服务代码,则可以在请求URL的末尾附加一个正在更改的伪参数(例如GUID或DateTime.Now.Ticks)


在这里查看我的答案:

您很可能遇到缓存问题。请更改REST服务以禁用缓存:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
如果您无权访问服务代码,则可以在请求URL的末尾附加一个正在更改的伪参数(例如GUID或DateTime.Now.Ticks)


在这里查看我的答案:

可能重复的可能重复我使用其他REST WCF测试客户端测试web服务,即使在两次尝试之间更改了值,我也像一个符咒一样工作。我使用其他REST WCF测试客户端测试web服务,即使在两次尝试之间更改了值,我也像一个符咒一样工作ts。