首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google脚本创建合流页面--状态代码500中的结果

Google脚本创建合流页面--状态代码500中的结果
EN

Stack Overflow用户
提问于 2019-03-22 23:16:48
回答 1查看 969关注 0票数 2

注:我还在亚特兰蒂斯论坛上发布了这个问题:https://community.atlassian.com/t5/Confluence-questions/Google-Apps-Script-to-Create-Confluence-Page-HTTP-500-Error/qaq-p/1039040#M66094

所以我要接触更多的观众。

我正在使用google工作表中的以下Google应用程序脚本代码来创建一个聚合页面:

代码语言:javascript
复制
headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' + 
pswd), "Content-Type": "application/json"};

url = "https://confluence.asdf.com/rest/api/content/";
var params = { 
  "method":"POST",
  "headers":headers,
  "muteHttpExceptions": false,
  "type":"page",
  "title":newTitle,
  "space":{"key":"DOC"},
  "body":{"storage":{"value": "<p>This is <br/> a new page</p>" }, 
  "representation":"storage"} 
};
var createResponse = UrlFetchApp.fetch(url, params); 

然而,当我提交请求时,我会收到以下答复:

代码语言:javascript
复制
Request failed for https://confluence.atlas.asdf.com/rest/api/content/ 
returned code 500.
Truncated server response: {"statusCode":500,"
message":"<?> No content to map to Object due to end of 
input","reason":"Internal Server Error"} (use muteHttpExceptions option to 
examine full response)

我知道外面有卷发样本,我看到了,但帮不了我。我做错了什么?

编辑:25-3月25日 @Tanaike按您的建议修改了代码:

代码语言:javascript
复制
    headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' + pswd) };


    var payload = {
      "type": "page",
      "title": newTitle,
      "space": {"key": "DOC"},
      "body": {
        "storage": {
          "value": "<p>This is <br/> a new page</p>"
        },
        "representation": "storage"
      }
    };
    var params = { 
      "method": "POST",
      "headers": headers,
      "muteHttpExceptions": false,
      "payload": JSON.stringify(payload),
      "contentType": "application/json"
    };

    var createResponse = UrlFetchApp.fetch(url, params);        

我收到了和以前一样的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 23:35:38

这个修改怎么样?

修改脚本:

请按以下方式修改params并再次测试。从您问题中的错误消息中,请求主体被放置在payload属性中。

代码语言:javascript
复制
var payload = {
  "type": "page",
  "title": newTitle,
  "space": {"key": "DOC"},
  "body": {
    "storage": {
      "value": "<p>This is <br/> a new page</p>"
    },
    "representation": "storage"
  }
};
var params = { 
  "method": "POST",
  "headers": headers,
  "muteHttpExceptions": false,
  "payload": JSON.stringify(payload)
};

注意:

  • 这种修改假设payloadheaders中的每个值都是正确的。
  • 标头中的"Content-Type": "application/json"也可以作为"contentType": "application/json"放在params中。

参考文献:

我不能测试这个修改。因此,如果这不起作用,你能提供错误信息吗?我想考虑一下这个问题。

编辑:

正式文件的角度来看,body的属性似乎是"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}。因此,请修改如下。

修改脚本:

代码语言:javascript
复制
headers = {"Authorization" : "Basic " + Utilities.base64Encode(user + ':' + pswd) };
var payload = {
  "type": "page",
  "title": newTitle,
  "space": {"key": "DOC"},
  "body": {
    "storage": {
      "value": "<p>This is <br/> a new page</p>",
      "representation": "storage" // Modified
    }
  }
};
var params = { 
  "method": "POST",
  "headers": headers,
  "muteHttpExceptions": false,
  "payload": JSON.stringify(payload),
  "contentType": "application/json"
};
var createResponse = UrlFetchApp.fetch(url, params);

注意:

  • 在我的环境中,我可以确认结果与官方示例脚本中的结果相同。如果这不起作用,请再次确认payloadheaders的每个值。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55308969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档