所以,这是我的问题。我目前正在开发 WCF REST 服务,我现在需要实现一种允许我创建帐户(用户帐户)的方法。这次在网上搜索并没有帮助我,这就是为什么我要问一个真正知道我的意思的人 x)。所以,这是我的方法:[WebInvoke(Method = "PUT", UriTemplate = "users/{username}", RequestFormat = WebMessageFormat.Xml)] [OperationContract] void PutUserAccount(string username, User u) { Debug.WriteLine("Entering method [PutUserAccount]"); // Check if user exists User user = DBManager.FindUser(username); if (user == null) { try { //Create or update new user u.Id = GetUserLink(username); u.Notes = GetUserNotesLink(username); u.BlackListed = false; DBManager.AddUser(u); // Set status to created and include new URI in Location //header WebOperationContext.Current.OutgoingResponse.SetStatusAsCreated(GetUserProfile(username).Id); } catch (Exception e) { Debug.WriteLine("_PutUserAccount || Exception [" + e.Message + "]"); } } else if (!DBManager.IsUserAuthorized(username, WebOperationContext.Current)) { Debug.WriteLine("_PutUserAccount - 1. This user isn't allowed to add users"); WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized; return; } }这是我的“用户”类:[DataContract]class _User{ [DataMember] public string Id { get; set; } [DataMember] public string Username { get; set; } [DataMember] public string Password { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Email { get; set; } [DataMember] public string Notes { get; set; } [DataMember] public bool BlackListed { get; set; }}我的问题是,我必须如何构建将用户传递给我的服务的请求?PS:我正在使用邮递员来测试我的代码。
1 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
好吧,经过很多努力,我设法做到了。我所要做的就是在“用户 xmlns”中添加我的对象的命名空间,并按正确的顺序放置数据。这是我的工作要求:
<User xmlns="http://schemas.datacontract.org/2004/07/namespace.lib.Objects" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<BlackListed>false</BlackListed>
<Email>okabe.rintarou@achannel.com</Email>
<Id></Id>
<Name>Okabe Rintarou</Name>
<Notes></Notes>
<Password>1234</Password>
<Username>Kyouma</Username>
</User>
我尝试这样做已经 1 周了,对我来说很愚蠢。
- 1 回答
- 0 关注
- 298 浏览
添加回答
举报
0/150
提交
取消