HighRise API创建一个人,并在那里丢失名字

时间:2018-10-04 17:26:48

标签: f# restsharp highrise

我正在尝试使用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状态代码。不确定我在这里做错了吗?

3 个答案:

答案 0 :(得分:1)

基于similar StackOverflow question,当您的请求中有其他错误时,例如缺少适当的Content-Type,您可能会收到此错误。

我不熟悉Highrise或Restsharp给出确切的答案,但是看来如何创建请求可能有问题。仅仅阅读您的代码,我发现使用AddParameter来添加主体有些出乎意料(即使可能是正确的)。看来您也许可以改用AddBody,所以我会尝试的。

(这更多是评论,而不是适当的答案,但是将其发布为评论太久了!)

答案 1 :(得分:1)

我认为这是在创建用户时尝试添加标签的结果。从API来看还不清楚,但是至少以我的经验,标签字段的公式无法与公司/人员一起提交并获得成功。

或者,我不会说f#,所以不能确定,但​​是“ Content-Type”应该位于标头中。您使用的参数组件是否将其显式添加为标题?

在我使标题工作之前,出现了缺少的姓名字段。

答案 2 :(得分:0)

事实证明,创建新人员时无法添加标签。添加联系人后,需要在单独的请求中添加。文档中未明确提及,但可以从其示例中得出结论。