为了账号安全,请及时绑定邮箱和手机立即绑定

发送带有对象参数的 PUT 请求(.NET WCF 服务)

发送带有对象参数的 PUT 请求(.NET WCF 服务)

C#
慕桂英3389331 2021-11-28 20:17:18
所以,这是我的问题。我目前正在开发 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 周了,对我来说很愚蠢。


查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 298 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信