您现在的位置是:娱乐 >>正文

易语言post提交json

娱乐37971人已围观

简介易语言里用POST发JSON,核心就三行代码的事。但很多人卡在“提交上去服务器收不到”或者“返回乱码”上。我见过一个做自动发卡的朋友,他用易语言写了个小工具,POST一个JSON到自己的PHP接口,结 ...

易语言里用POST发JSON,易语言核心就三行代码的易语言事。但很多人卡在“提交上去服务器收不到”或者“返回乱码”上。易语言我见过一个做自动发卡的易语言朋友,他用易语言写了个小工具,易语言POST一个JSON到自己的易语言PHP接口,结果后端收到的易语言数据永远是空的。折腾了一下午,易语言最后发现是易语言协议头里少写了 Content-Type: application/json。就这么一个细节,易语言卡住半天。易语言

先看最直接的易语言写法。用“网页_访问”这个命令,易语言精易模块里自带。易语言假设你要提交的易语言JSON是 { "user":"test","pass":"123"},代码大概长这样:

局部变量 提交数据, 文本型 局部变量 返回结果, 文本型 提交数据 = “{ ” + #引号 + “user” + #引号 + “:” + #引号 + “test” + #引号 + “,” + #引号 + “pass” + #引号 + “:” + #引号 + “123” + #引号 + “}” 返回结果 = 网页_访问 (“http://你的接口地址”, 1, 提交数据, , , “Content-Type: application/json”, , , , , , , ) 

注意那个参数“1”,代表POST方式。第五个参数是协议头,这里必须手动加上 Content-Type: application/json。易语言默认的协议头是表单格式,不加这一句,PHP的 file_get_contents('php://input') 读出来就是空字符串。我试过,不加协议头,后端 $_POST 数组也是空的,因为PHP不认这种原始JSON体。

还有一种情况:服务器要求用UTF-8编码。易语言的文本型默认是GBK,你直接拼出来的JSON里的中文,到了服务器那边就是乱码。解决办法是用“编码_Ansi到Utf8”转一下再提交。比如:

提交数据 = 编码_Ansi到Utf8 (提交数据) 

但转完之后,返回的数据可能也是UTF-8,你显示在编辑框里会看到“涓枃”之类的乱码。再转回来就行:

返回结果 = 编码_Utf8到Ansi (返回结果) 

有人喜欢用“类_POST数据”或者“精易编程助手”生成的代码。那些工具生成的代码里,协议头经常是自动带上的,但你要检查一下是不是被覆盖了。我见过一个例子,工具生成的代码里写了 Content-Type: application/x-www-form-urlencoded,结果JSON提交上去,后端解析失败。手动改掉那一行就好了。

再说一个实际遇到的坑。有个做微信小程序后端的朋友,用易语言写了个签到工具,POST JSON到自己的服务器。他用了“网页_访问_对象”,这个命令支持Cookie和代理,但协议头参数的位置和“网页_访问”不一样。他按老习惯填,结果协议头没生效。后来查了命令说明,发现“网页_访问_对象”的协议头是第几个参数来着——我记不清了,反正他调了半天。所以用哪个命令,就老老实实看那个命令的参数说明,别凭记忆。

返回的JSON怎么解析?易语言没有内置的JSON解析,得用“类_Json”或者“json解析”模块。简单点的,用“文本_取出中间文本”硬抠也行,但字段一多就乱。我一般用精易模块里的“类_Json”,先 解析,再 取属性。比如返回 { "code":0,"msg":"ok"},代码是:

json.解析 (返回结果) code = json.取属性 (“code”).取数值 () msg = json.取属性 (“msg”).取文本 () 

如果返回的是数组,比如 [{ "id":1},{ "id":2}],那就先 json.解析,然后 json.取成员数 () 拿长度,再循环 json.取成员 (i)。别想着用“取属性”直接取,会报错。

最后提一句:有些服务器会检查 User-Agent,你不加,它直接返回403。加上 User-Agent: Mozilla/5.0 这种,一般就能过。易语言默认的UA是“易语言”,很多防火墙直接拦。这个坑我踩过,换成浏览器UA就好了。

说白了,易语言POST JSON就三件事:拼对JSON字符串、写对协议头、处理好编码。剩下的就是调试。别怕返回空,先看协议头,再看编码,九成问题出在这两处。

Tags:

相关文章

  • 明星黑料点这里

    娱乐

    《明星黑料点这里》 张雨绮又上热搜了。这次不是新电影,不是红毯造型,而是一段模糊的监控视频——她在一家火锅店门口,对着助理摔了手机。视频像素低得能数出噪点,但评论区已经炸了:“果然,脾气差是装不出来的 ...

    【娱乐】

    阅读更多
  • 奇迹天鹰合成

    娱乐

    去年秋天我在青海一个牧民家里喝酥油茶,老阿妈指着窗外说:“看,天鹰。”我探头看了半天,只看见几只黑点在高空盘旋。她说那是鹰,不是普通的鹰——翅膀展开像能遮住半个天。后来我才知道,她说的“天鹰”就是胡兀 ...

    【娱乐】

    阅读更多
  • 查漏洞 问短板 着力解决瓶颈制约方面

    娱乐

    系统跑得慢,不一定是代码写得烂。上个月帮一家做仓储管理的公司排查问题,他们的出库单打印接口响应时间从200毫秒飙到4秒。运维第一反应是加服务器,数据库连接池从50调到200,结果更卡了。后来抓了一次火 ...

    【娱乐】

    阅读更多


友情链接