http - 只返回多个get参数请求中的第一个参数
问题描述
我有以下 api curl 请求:
curl --request GET http://127.0.0.1/juris?d=11111&a=22222
在我http handler function
的里面有参数:w http.ResponseWriter,r *http.Request
我有代码:
defer r.Body.Close()
keys,ok := r.URL.Query()["d"]
if !ok{
respondWithError(w,http.StatusBadRequest,"InvalidQuery")
return
}
dnisQuery := string(keys[0])
akeys,aok := r.URL.Query()["a"]
if !aok{
respondWithError(w,http.StatusBadRequest,"InvalidQuery")
return
}
aniQuery := string(akeys[0])
它验证并传递第一个查询参数的正确值,d
但第二个参数a
失败InvalidQuery
不知道我做错了什么。
解决方案
如果你发出
curl --request GET http://127.0.0.1/juris?d=11111&a=22222
外壳会看到
curl --request GET http://127.0.0.1/juris?d=11111 & a=22222
并将第一个命令作为后台作业运行,这就是该a
部分被忽略的原因。(它实际上导致 shell 将变量设置a
为22222
。)要让它工作,你必须转义你的 URL:
curl --request GET 'http://127.0.0.1/juris?d=11111&a=22222'
推荐阅读
- c# - 注释中带有大括号的全局命名空间别名(双冒号) - C#
- javascript - 在 React 组件中调用 Javascript 函数时返回未定义
- php - 使用 simplehtmldom 在 php 中获取嵌套标签
- python - 如何解决使用 cython 时未解决的对“Py ..”的引用的问题
- java - 主线程不等待订阅者在反应订阅者中完成他们的任务
- swift - 如何替换视图控制器而不是推动更多的segue
- keras - Keras:保存模型定义为一个类引发 NotImplementedError
- python - 如何使用 PyCharm 和 Pytorch 快速获取文档
- python - 如何将 withcolumn 方法与基于多个条件的过滤器一起使用?
- javascript - 下载按钮没有在javascript中下载图像