在put或post之后获取请求显示以前的数据而不是修改数据?

时间:2014-01-18 15:17:06

标签: c# json web-services httprequest windows-phone-7.1

问题是我在构造函数中执行了一个GET请求(我调用了这个方法,所以每次进入页面时数据都是从数据库中新获得的)并且它以适当的方式从数据库中获取数据。但在我修改数据并返回页面后,数据仍未修改。数据库中的数据发生更改,因此修改可以正常工作,但GET请求似乎会获取不再存在于数据库中的旧数据。这是怎么回事?我该如何解决这个问题?提前致谢!

public void getUserData()
{
    RestClient client = new RestClient("http://localhost:8080/GigShare/webresources");
    var request = new RestRequest("/user/{username}", Method.GET);
    request.AddUrlSegment("username", "" + user.userName);

    client.ExecuteAsync(request, response =>
    {

        getYourCarpools();
        System.Diagnostics.Debug.WriteLine(modifyName.Text);
        userget = (User) JsonConvert.DeserializeObject<User>(response.Content);

        System.Diagnostics.Debug.WriteLine("GET");
        System.Diagnostics.Debug.WriteLine(userget.name);
        modifyName.Text = userget.Name;
        modifySurname.Text = userget.surName;
        modifyUsername.Text = userget.userName;
        modifyTown.Text = userget.town;
        modifyStreetName.Text = userget.streetName;
        modifyHomenumber.Text = userget.homeNumber;
        modifyProvince.Text = userget.province;
        modifyEmail.Text = userget.email;
        modifyCarBrand.Text = userget.car.brand;
        modifyFuelType.Text = userget.car.fuelType;
        modifySeats.Text = "" + userget.car.seats;
        modifyavarageConsumption.Text = "" + userget.car.averageConsumption;
        getCarData();

    });
}


private void btnModifyCreateAccount_Click(object sender, RoutedEventArgs e)
{

    User outputUser = dataFromUser();

    var client = new RestClient()
    {
        BaseUrl = "http://localhost:8080/GigShare/webresources",
        Authenticator = new HttpBasicAuthenticator("" + user.userId, user.password)
    };
    var request = new RestRequest("/user/id/{id}", Method.PUT);
    request.AddUrlSegment("id", "" + user.userId);




    request.RequestFormat = DataFormat.Json;

    request.AddBody(outputUser);
    client.ExecuteAsync(request, response =>
    {


        if (response.StatusCode == HttpStatusCode.NoContent)
        {
           // getUserData();

           // NavigationService.Navigate(new Uri("/Views/NewlyAdded.xaml", UriKind.Relative));
            System.Diagnostics.Debug.WriteLine("PUT");


        }
        else
        {
            System.Diagnostics.Debug.WriteLine("failmode");

        }


    });


}

0 个答案:

没有答案