C# Concur Create用户返回404批处理元素缺失

C# Concur Create用户返回404批处理元素缺失,c#,api,sap-concur,C#,Api,Sap Concur,我正在尝试在Concur中创建一个用户。我提到了获取Xml格式 这是http POST请求(使用POSTMAN) 请求 POST https://www.concursolutions.com/api/user/v1.0/users HTTP/1.1 Authorization: OAuth 0_xxxxxxxtoF3bsxxxBrNwzxxxx= Accept: application/xml Content-Type: application/xml; charset=utf-8 Host:

我正在尝试在Concur中创建一个用户。我提到了获取Xml格式

这是http POST请求(使用POSTMAN)

请求

POST https://www.concursolutions.com/api/user/v1.0/users HTTP/1.1
Authorization: OAuth 0_xxxxxxxtoF3bsxxxBrNwzxxxx=
Accept: application/xml
Content-Type: application/xml; charset=utf-8
Host: www.concursolutions.com
Content-Length: 227
Expect: 100-continue

<Batch xmlns='http://www.concursolutions.com/api/user/2011/02'><UserProfile><EmpId>E0005</EmpId><FeedRecordNumber>1</FeedRecordNumber><LoginId>myuser1@mycompany.com</LoginId><Password>myP@@sword</Password></UserProfile></Batch>
POSThttps://www.concursolutions.com/api/user/v1.0/users HTTP/1.1
授权:OAuth 0_XXXXXXXXTOF3BSXXXBRNWZXXXX=
接受:应用程序/xml
内容类型:application/xml;字符集=utf-8
主持人:www.concursolutions.com
内容长度:227
预期:100人继续
E00051myuser1@mycompany.commyP@@剑
响应

000000B2 <Error><Message>batch element is missing. Please check your
request.</Message><Server-Time>2016-03-28T19:34:02</Server-Time><Id>XXXXXXXX-AACE-4A49-8EE6-669EF3XXXXX</Id></Error>
00000000
000000 B2批处理元素缺失。请检查您的电话号码
请求2016-03-28819:34:02XXXXXXXX-AACE-4A49-8EE6-669EF3XXXXX
00000000
为什么它抱怨缺少“Batch”元素,但显然它在内容中?我可以参考任何官方文档来获取XML格式以创建用户吗

注意:我在这里标记了C,因为我正试图让我的C代码为此工作。我已经编写了生成上述请求并得到相同响应的代码

注意:在参考文章中,
标记未关闭。当我第一次尝试时,我得到一个错误:“请求XML无效:第1行位置242上的'EmpId'开始标记与'UserProfile'的结束标记不匹配。第1行位置328。”。所以我在XML中纠正了这个错误。然后我得到批元素丢失错误。因此,我并不完全相信XML结构

我从他那里得到了答案。问题是它需要区分大小写的“batch”元素。这不是我提到的XML格式中唯一的问题

这是一个用于在V3中添加用户的工作XML模式

<batch xmlns="http://www.concursolutions.com/api/user/2011/02" 
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<UserProfile xmlns="http://www.concursolutions.com/api/user/2011/02" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FeedRecordNumber>1</FeedRecordNumber>
<Active>Y</Active>
<LoginId>FirstLast@contoso.com</LoginId>
<FirstName>First</FirstName>
<LastName>Last</LastName>
<CtryCode>US</CtryCode>
<LocaleName>en_US</LocaleName>
<CrnKey>USD</CrnKey>
<EmpId>0001</EmpId>
<EmailAddress>FirstLast@contoso.com</EmailAddress>
<Password>password</Password>
<IsTestEmp>N</IsTestEmp>
<ExpenseApprover>Y</ExpenseApprover>
<Custom21>US</Custom21>
<ExpenseUser>Y</ExpenseUser>
<InvoiceApprover>N</InvoiceApprover>
<InvoiceUser>N</InvoiceUser>
<LedgerName>DEFAULT</LedgerName>
<LedgerCode></LedgerCode>
<LocalName>en_US</LocalName>
</UserProfile>
</batch>

1.
Y
FirstLast@contoso.com
弗斯特
最后
美国
恩努斯
美元
0001
FirstLast@contoso.com
密码
N
Y
美国
Y
N
N
违约
恩努斯

与链接中给出的示例相比,xml中缺少了很多字段。例如,
Active
EmailAddress
FirstName
LastName
。从我的观点来看,这意味着
Batch
的一个元素丢失了。很可能是上述字段之一。您应该首先使用已知的工作输入(即给出的示例)对其进行测试。我也会犹豫是否保留这个
C#
代码,因为虽然你的代码是C#,但它与问题无关。嗨,罗布,我就是这样开始的。我先用它试过了,它给出了同样的错误。然后,我只使用必填字段简化了内容,仍然得到相同的错误。您可以尝试使用
而不是
用于批处理命名空间属性?我已经尝试过了,结果相同。谢谢Rob。我必须提到一件事,当我发布这个问题时,我更改了密码和loginId,所以contentlength是我得到的原始内容224,这是正确的。现在,我将显示的XML数据的内容长度更改为227。