【发布时间】:2017-05-08 20:12:15
【问题描述】:
我使用 URL 参数(有效)以下列方式发出 POST 请求:
var PAYLOAD = `
<myxmlcontent>
<attribute name="id">1</attribute>
<attribute name="FullName">Joe Bloggs</attribute>
</myxmlcontent>
`
var URL = 'http://www.somewhere.com/integration?apiKey=company&apiToken=123&payload=' + PAYLOAD;
client.request({
url: URL,
type: 'POST',
contentType: 'application/xml'
}).then(
function(data) {
console.log(data);
}
);
但我希望将有效负载数据放入请求正文中。
这是正确的方法吗?我不确定,但到目前为止我的尝试被证明是不成功的:
var PAYLOAD = `
<myxmlcontent>
<attribute name="id">1</attribute>
<attribute name="FullName">Joe Bloggs</attribute>
</myxmlcontent>
`
client.request({
url: 'http://www.somewhere.com/integration',
type: 'POST',
contentType: 'application/xml',
headers: {
apiKey: 'company',
apiToken: '123'
},
dataType: 'xml',
data: 'data=' + JSON.stringify(PAYLOAD)
}).then(
function(data) {
console.log(data);
}
);
我目前正在构建客户端 Zendesk 应用程序。
【问题讨论】:
-
是的,这基本上是对的,您只是没有对参数值进行编码。并且您的内容类型与您发送的内容不匹配。一个参数字符串可能包含一个 xml 值,但它仍然是一个参数字符串,而不是 xml。
-
嗨,凯文,感谢您的帮助
-
如果我理解正确,结果我对代码做了如下修改。请求前:PAYLOAD = encodeURIComponent(PAYLOAD) 请求正文中:dataType: 'text', data: 'data=' + JSON.stringify(PAYLOAD )。不幸的是,我仍然收到 500 条回复。
-
服务器希望你给它什么?
-
我正在阅读与 API 相关的文档。 入站 API 中的负载请求参数是 XML。 我不确定这有多值得注意:如果集成是在 Web 服务模式下,**** 和客户端应用程序之间的消息就结束了HTTP/HTTPS。所有 API 都以键值对样式(不是 REST 样式)接受输入,并以 XML 格式响应客户端。身份验证是通过交换在 **** 以及客户应用程序中维护的登录 ID/密码组合。
标签: javascript xml api post zendesk