我正在尝试使用API创建一个高层人物。我在响应中收到“缺少名字。联系人必须具有名字”的错误消息。
这是我的代码:
let x = """<?xml version="1.0" encoding="UTF-8"?>
<person>
<first-name>name</first-name>
<last-name>last</last-name>
<contact-data>
<email-addresses type="array">
<email-address>
<address>someEmail@gmail.com</address>
</email-address>
</email-addresses>
</contact-data>
<tags type="array">
<tag>
<id type="integer">6154219</id>
<name>sometag</name>
</tag>
</tags>
</person>"""
let req = new RestRequest("/people.xml", Method.POST)
req.AddParameter("Content-Type", "application/xml")
req.AddParameter("application/xml", x, ParameterType.RequestBody)
let res = client.Execute(req)
响应返回422状态代码。不确定我在这里做错了吗?
答案 0 :(得分:1)
基于similar StackOverflow question,当您的请求中有其他错误时,例如缺少适当的Content-Type
,您可能会收到此错误。
我不熟悉Highrise或Restsharp给出确切的答案,但是看来如何创建请求可能有问题。仅仅阅读您的代码,我发现使用AddParameter
来添加主体有些出乎意料(即使可能是正确的)。看来您也许可以改用AddBody
,所以我会尝试的。
(这更多是评论,而不是适当的答案,但是将其发布为评论太久了!)
答案 1 :(得分:1)
我认为这是在创建用户时尝试添加标签的结果。从API来看还不清楚,但是至少以我的经验,标签字段的公式无法与公司/人员一起提交并获得成功。
或者,我不会说f#,所以不能确定,但是“ Content-Type”应该位于标头中。您使用的参数组件是否将其显式添加为标题?
在我使标题工作之前,出现了缺少的姓名字段。
答案 2 :(得分:0)
事实证明,创建新人员时无法添加标签。添加联系人后,需要在单独的请求中添加。文档中未明确提及,但可以从其示例中得出结论。