0

我正在尝试使用 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 状态代码。不知道我在这里做错了什么?

4

3 回答 3

1

基于类似的 StackOverflow 问题,当您的请求中存在其他错误时,您可能会收到此错误,例如当它缺少适当的Content-Type.

我不熟悉 Highrise 或 Restsharp 给出明确的答案,但您创建请求的方式似乎有问题。仅通过阅读您的代码,我发现AddParameter添加主体的使用有点出乎意料(即使它可能是正确的)。看起来你可能可以使用AddBody,所以我会尝试。

(这更像是评论而不是正确的答案,但是将其作为评论发布太长了!)

于 2018-10-05T00:24:48.413 回答
1

我相信这是在创建用户时尝试添加标签的结果。API 并不清楚,但至少根据我的经验,标签字段的公式不能与公司/个人一起提交并成功。

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

在我得到标题之前,丢失的名称字段出现在我面前。

于 2018-10-25T20:56:26.410 回答
0

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

于 2018-11-07T21:43:26.500 回答