首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DocuS传400 BadRequest for AddUser帐户REST

DocuS传400 BadRequest for AddUser帐户REST
EN

Stack Overflow用户
提问于 2016-03-23 06:42:17
回答 1查看 245关注 0票数 1

我设法用我的代码获得访问令牌,

代码语言:javascript
复制
  private async Task<string> GetAccessToken()
    {
        string refreshToken = string.Empty;
        string accessToken = string.Empty;

        HttpClient client = new HttpClient();

        client.BaseAddress = new Uri("https://demo.docusign.net/restapi/v2/oauth2/token");

        client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));

        string body =
            "username=user%40company.net&password=mypassword&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc&grant_type=password&scope=api";               

        HttpContent content = new System.Net.Http.StringContent(body, Encoding.UTF8, "application/x-www-form-urlencoded");

        HttpResponseMessage messge = await client.PostAsync("https://demo.docusign.net/restapi/v2/oauth2/token", content);
        //string description = string.Empty;
        if (messge.IsSuccessStatusCode)
        {
            string result = messge.Content.ReadAsStringAsync().Result;

            dynamic returnObj = JsonConvert.DeserializeObject(result);

            var scope = returnObj.scope.Value;
            accessToken = returnObj.access_token.Value;

        }

        return accessToken;
    }

这给了我访问令牌,现在我尝试使用该令牌并向帐户中添加一个用户,

代码语言:javascript
复制
    private async Task<string> AddUser(string accessToken, string usersBaseUri)
    {
        usersBaseUri = "https://demo.docusign.net/restapi/v2/accounts/<myaccountId>/users";
        string resultStr = string.Empty;

        HttpClient client = new HttpClient();

        client.BaseAddress = new Uri(usersBaseUri);
        client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);           


        DocuSignUser user = new DocuSignUser();
        user.Email = "user2@company.net";
        user.UserName = "user2@company.net";
        user.FirstName = "user2";
        user.LastName = "dev";

        var json = JsonConvert.SerializeObject(user);
        HttpContent content = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json");

        HttpResponseMessage messge = await client.PostAsync(usersBaseUri, content);
        //string description = string.Empty;
        if (messge.IsSuccessStatusCode)
        {
            string result = messge.Content.ReadAsStringAsync().Result;

            dynamic returnObj = JsonConvert.DeserializeObject(result);

            var scope = returnObj.scope.Value;
            accessToken = returnObj.access_token.Value;
        }

        return resultStr;
    }

下面是我用来序列化的Docusign类,

代码语言:javascript
复制
public class DocuSignUser
{
    [JsonProperty("email")]
    public string Email { get; set; }

    [JsonProperty("userName")]
    public string UserName { get; set; }

    [JsonProperty("firstName")]
    public string FirstName { get; set; }

    [JsonProperty("lastName")]
    public string LastName { get; set; }

}

.Net SDK中不支持用户api。为此,我不得不通过引用Docusign测试操场并使用Fiddler检查请求/响应来编写这段代码。

感谢你在这方面的任何帮助。

编辑

这是邮局的要求

代码语言:javascript
复制
POST https://demo.docusign.net/restapi/v2/accounts/156xxxx/users HTTP/1.1
Accept: application/json
Authorization: Bearer *******<AccessToken>
Content-Type: application/json; charset=utf-8
Host: demo.docusign.net
Content-Length: 100
Expect: 100-continue
    {"email":"user1@company.net","userName":"user1@company.net","firstName":"Sam1","lastName":"Cooper1"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 03:55:05

找到答案了

问题在于Json的信息。所需的Json格式为以下格式,按照Api指南格式

代码语言:javascript
复制
{
  "newUsers":[
     {         
        "email":"user@company.net",         
        "firstName":"name1",         
        "lastName":"lastname1",
        "password":"Password01",         
        "userName":"user1@bcompany.net"         
     }
   ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36171393

复制
相关文章

相似问题

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