bludit用api新建文章json正文字段报错Missing method inputs的原因

({"message":"Missing method inputs."})
 这个错误提示曾经在文章
 (bludit实践用Api接口新建页面采集入库)采集发布时遇到过 
 然而不止一个两个问题会导致这错误 
 正文一般是各种各样的html代码

解决思路

之前出现了问题 通过删除空白字符 编码后解决了 但还出现新的问题了

那就是 双引号的问题 正文内容有双引号就出错 即使是html编码也无济于事 但少量代码时html编码可以解决 多了就不行 所以我怀疑的问题如下

  • json序列化
  • 空白
  • 双引号
  • 其他特殊字符

把问题字符串 先小额测试 提取前面几十个字符提交 直到出错时再看看是什么问题 来匹配上面的问题是否存在

提取到第15个字符时出错 内容如下 提交后出错
<div><img src=" 

开始请求网址 请求方式:PUT请求状态:BadRequest,返回字符:
{"message":"Missing method inputs."}

去掉双引号 提交成功 如下
<div><img src=

开始请求网址 请求方式:PUT请求状态:ok,返回字符:
{"status":"0","message":"Page edited.","data":{"key":"2046"}} 

(09月09日 01:34:58)

结果:

会出现问题的字符有:(并不会绝对是因为字符的位置而出错 没有绝对的先后)
"
>
空白
// 总结 如果内容中没有双引号出现大概率能提交 
所以替换为单引号就可以 

但有时候就是想要用双引号那就行不通 只能转js编码
或者转义一下双引号 \"  提交后可以解析还原

编码提交后可以解码的类别有:
html编码 //不稳定 提交后 可以解码
转js字符串 //稳定 提交后 可以解码

结论

  • 对特殊符号转义即可
  • 或者无脑 js编码后提交

虽然js编码后可以解决但我最终选择了替换转义

将
"
替换为
\"

虽然说这样可以解决 但这套程序诡异的是 可能你下一次就提交不了,
然后你重新随便提交几个正常内容再提交又能允许你提交成功了
所以直接 to js编码吧

脑补 需替换 特殊字符串

附上特殊字符:

不要试图用同义词工具替换 一旦叠加就是灾难
 "=\"
\"=\\\"
\\=\\\\
/=\\/
\b=\\b
\f=\\f
\n=\\n
\r=\\r
\t=\\t