我正在尝试使用Google Apps制作帖子。
function makePost(url,page,status,token) {
var form = {
"page" : 1,
"statuses[]": status.toString().toLowerCase(),
}
var options = {
'method': 'post',
'headers' : {"Authorization" : "BASIC "+token},
'contentType': 'application/x-www-form-urlencoded',
'payload' : form,
};
var response = UrlFetchApp.fetch(url, options);
var jsonResponse = JSON.parse(response.getContentText());
return jsonResponse;}
问题似乎是该页面已经过了1.0,这使得目标网址在尝试强制转换时返回错误。
已在How to convert a string to number using Google Apps Script中尝试了答案。
我无法将其作为String传递,因为在这种情况下,API会以奇怪的行为返回结果。
是否可以将其作为整数传递而不将其更改为1.0?
任何建议或帮助都会有所帮助, 感谢
更新:所以,我找不到实现这个目标的方法。 UrlFetchApp每次都会更改它。幸运的是,我们可以通过在API中对响应进行排序来解决它,并且传递字符串的行为是不稳定的。
感谢您的帮助和建议!
答案 0 :(得分:0)
此处与Stripe REST连接在一起,后者强制执行基于表单的主体。它一定是UrlFetchApp的错误。
当我使用
payload: {
amount: 1000,
currency: 'USD',
}
UrlFetchApp始终对其进行编码,请注意小数点.0
"payload":"amount=1000.0¤cy=USD"
但是我通过将其转换为字符串来解决它。
payload: {
amount: String(1000),
currency: 'USD',
}
奇怪的是,有效负载现在将正确编码为
"payload":"amount=1000¤cy=USD"
因为form-urlencoded没有指定值的类型,所以在这种情况下,不是数字字符串或整数。这是服务器解释值的实现。