所以我有一个UWP项目,我希望能够更新现有条目的信息。当我进入“更新页面”时,我运行下面的代码来获取当前值到我的UI中:
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;
}
然后,在用户编辑他们想要的内容并按下'更新'按钮后,我想运行这个:
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方法,因为我无法弄清楚如何构建它。
发布于 2018-05-28 14:35:46
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;
}
}
https://stackoverflow.com/questions/-100001602
复制相似问题