我的服务部署在docker上,公开的nginx端口是18082;服务端口是38087,我都试过了。
当我使用命令时
curl-i-X POST-H'内容类型:text/json'-d@POST.json\
http://127.0.0.1:18082/youtu/openliveapi/livedetectfour
返回417
HTTP/1.1 417 Expectation failed
Server: squid/2.7.STABLE9
Date: Tue, 15 Aug 2017 11:57:04 GMT
Content-Type: text/html
Content-Length: 1436
X-Squid-Error: ERR_INVALID_REQ 0
X-Cache: MISS from SK-SQUIDDEV-118
X-Cache-Lookup: NONE from SK-SQUIDDEV-118:8080
Connection: close
但当我在前面添加sudo时,它会返回成功。
HTTP/1.1 100继续
HTTP/1.1 200 OK服务器:openresty/1.9.15.1
我真的做了搜索并且知道当curl post超过1024字节时,它将首先发送
请期待100-continue。如果服务器不支持该请求,它将返回417错误。
那么sudo怎么会成功呢,可能跟nginx机制有关,我不太熟悉,谢谢。
最佳答案
因为您正在公司设置中使用代理,并且代理可能会插入到用户的bash配置文件中。你可以做三件事
更新~/.bash_配置文件或~/.bashrc
从你的个人资料中删除代理,你就不需要代理了
取消设置变量
您可以在调用之前取消设置变量
unset http_proxy
unset https_proxy
curl -i -X POST -H 'content-type: text/json' -d @post.json \ http://127.0.0.1:18082/youtu/openliveapi/livedetectfour
清空调用的变量
您可以只为一个curl调用设置变量
http_proxy= https_proxy= curl -i -X POST -H 'content-type: text/json' -d @post.json \ http://127.0.0.1:18082/youtu/openliveapi/livedetectfour