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