curl传递大json文件报错解决方法

curl传递大json文件报错解决方法

下面shell 第一步获取token, 然后用token给服务端发送json文件,  正常json文件小时下面shell可以正常运行。

#!/bin/bash
#
access_res=$(curl "http://192.168.1.1:30100/api/v1/ability_sub/external/getToken?appId=d53e9b4083a8577e31dae685305fd032&secret=27766999
0d60d4616a8ae1fd9d6fc114")

access_token=$(echo $access_res |cut -d":" -f6 |cut -d"}" -f1|sed s/\"//g)

accress_url='curl -i -X POST -H "Content-Type:application/json" -d @/opt/accesstoken/test.json http://192.168.1.1:30202/app-l59q59yp3po2
7l-store/quality/faultOrderQ?'${access_token}

echo $accress_url
$accress_url

使用curl POST数据时,如果POST的数据大于1024字节,curl并不会直接就发起POST请求。而是会分两步。

1.发送一个请求,header中包含一个Expect:100-continue,询问Server是否愿意接受数据。
2.接受到Server返回的100-continue回应后,才把数据POST到Server。

服务端默认是开启接收json的,这时去掉发送前询问,增加-H "Expect:",如下:

accress_url='curl -i -X POST -H "Expect:" -H "Content-Type:application/json" -d @/opt/accesstoken/test.json http://192.168.1.1:30202/app-l59q59yp3po2 7l-store/quality/faultOrderQ?'${access_toke

这样增加定时任务就可以了

posted on 2021-11-02 10:29  浊酒三杯  阅读(582)  评论(0编辑  收藏  举报