首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >XAML - 如何通过PutAsync更新现有对象?

XAML - 如何通过PutAsync更新现有对象?
EN

Stack Overflow用户
提问于 2018-05-28 04:41:14
回答 1查看 0关注 0票数 0

所以我有一个UWP项目,我希望能够更新现有条目的信息。当我进入“更新页面”时,我运行下面的代码来获取当前值到我的UI中:

代码语言:javascript
复制
protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var piece = App.Pieces;
        IdBox.Text = piece.PieceId.ToString();
        TitleBox.Text = piece.PieceTitle;
        AuthorBox.Text = piece.PieceAuthor;
        IsbnBox.Text = piece.PieceIsbn;
        DescBox.Text = piece.PieceDescription;
    }

然后,在用户编辑他们想要的内容并按下'更新'按钮后,我想运行这个:

代码语言:javascript
复制
var existingPiece = new Piece
{
    PieceTitle = TitleBox.Text,
    PieceAuthor = AuthorBox.Text,
    PieceIsbn = IsbnBox.Text,
    PieceDescription = DescBox.Text,
    PieceCover = "http://covers.openlibrary.org/b/isbn/" + IsbnBox.Text + "-M.jpg",
    PieceId = int.Parse(IdBox.Text)
};

using (var client = new System.Net.Http.HttpClient())
{
    var json = JsonConvert.SerializeObject(existingPiece);
    var buffer = System.Text.Encoding.UTF8.GetBytes(json);
    var byteContent = new ByteArrayContent(buffer);
    byteContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
    var result = client.PutAsync(App.BaseUri, byteContent).Result;
}

App.RootFrame.Navigate(typeof(DisplayPage));

这里的问题是我不知道如何正确运行PutAsync,以便它能够更新我的数据库。上面看到的代码基本上只是我从PostAsync添加条目变更为PutAsync时的PostAsync方法,因为我无法弄清楚如何构建它。

EN

回答 1

Stack Overflow用户

发布于 2018-05-28 14:35:46

代码语言:txt
复制
public async static Task<string> SendPutRequest(string url, string body)
{
    try
    {
        HttpRequestMessage mSent = new HttpRequestMessage(HttpMethod.Put, new Uri(url));
        mSent.Content = new HttpStringContent(body, Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json; charset=utf-8");
        HttpClient client = new HttpClient();
        HttpResponseMessage response = await client.SendRequestAsync(mSent);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
    catch
    {
        return null;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档