• 技术交流
  • 【求助】无法把一个api的返回值当作参数导入另一个api

res,MingWen=http.get("https://xiaobai.klizi.cn/API/other/yy.php")
link="https://xiaobai.klizi.cn/API/other/trans.php?data=&msg="..MingWen
res,PlainText=http.get(link)

像这样,就会返回
有道翻译查询结果 翻译前: 翻译后:
这种没输入参数的返回值
直接输出MingWen和link检查过,是没问题的,把link的值粘贴进浏览器地址栏,也能得到正常返回
但是如果把第一行注释掉,自己写一行MingWen = “随便什么”,也能得到正常结果
测试的时候怀疑是文本编码啊utf-8啊之类的问题,但是并不懂这部分

因为链接需要进行URL编码
手动放进浏览器地址栏,其实浏览器是会帮你编码解码的,并不能完全作为参考

function encodeURI(s) 
    s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
    return string.gsub(s, " ", "+")
end

添加这个函数,然后在把MingWen改为encodeURI(MingWen)应该就可以了

但我还是看不见翻译查询结果……

有道翻译查询结果 翻译前:拥有广阔退路的人总是能显得很高尚……当你第一步走错了之后,就无法再回头。 翻译后:

    Lily Black 遇到了新的问题可以顺便看看吗,直接输出Plaintext会得到
    {"success":true,"type":"ZH_CN2EN","data":{"text":"女生口中的「好人」首先百分之百是「怎样都好的人」的意思,再好也不过止于「方便好使的人」。","fanyi":"Girl's mouth is \"good\" first one hundred percent of the meaning of \"how good a person\", again good also however in \"convenience so that the people\"."}}
    但是使用Plaintext.data或者其他后缀都会得到nil
    另外这个机翻好难看

      说点什么吧...