当前位置: 首页 > 面试题库 >

使用golang http包获取发布数据

沃楷
2023-03-14
问题内容

我是golang的新手,熟悉http包。我在获取使用邮递员发送的邮政数据时遇到麻烦。

http://localhost:8084/dbTest是我的URI。我正在传递键:hub_id值:1使用表单数据。我尝试了以下方法

req.ParseForm()
fmt.Println("hub_id", req.Form["hub_id"])
req.Form.Get("hub_id")

但是这些方法都不起作用。我得到的回应是空洞的。

以下是我的代码:

package main

import (
    "fmt"
    "net/http"
    "log"
)

func dbtest(w http.ResponseWriter, req *http.Request) {
  req.ParseForm()
  fmt.Println("hub_id", req.Form["hub_id"])
  req.Form.Get("hub_id")
  fmt.Println(req.PostFormValue("hub_id")) //response is empty
}

func main() {

    http.HandleFunc("/dbTest", dbtest)

  log.Fatal(http.ListenAndServe(":8084", nil))
}

当我打印要求时,我得到以下信息:

&{POST /dbTest HTTP/1.1 1 1 map[Origin:[chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop] Connection:[keep-alive] Content-Type:[multipart/form-data; boundary=----WebKitFormBoundarydFOTVjOJMeqOHnS3] Content-Length:[138] Accept-Language:[en-US,en;q=0.8] Cache-Control:[no-cache] Accept-Encoding:[gzip, deflate] Accept:[*/*] User-Agent:[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36] Postman-Token:[ac7ae3a9-60f6-2146-3f1c-209de7622774]] 0xc210012e70 138 [] false localhost:8084 map[] map[] <nil> map[] 127.0.0.1:34152 /dbTest <nil>}

解决方案: 我找到了解决方案。既然,content-type是mulipart/form- data我解析表格的正确方法是使用req.ParseMultipartFormhttp方法。


问题答案:

您使用的不正确Content-Type。使用时Content-Type:application/x-www-form- urlencodedr.ParseForm()将正确解析数据。r.Form之后再检查。



 类似资料:
  • 我已经引用了这个... Android HttpClient、DefaultHttpClient、HttpPost、http://www.androidsnippets.com/executing-a-http-post-request-with-httpclient和http://www.javacodegeeks.com/2013/06/android-apache-http-client.h

  • 对于所有专家,我们一直在开发一个包含以下模块的应用程序: opencv 努比 熊猫 跺脚 nltk bs4 PIL 请求 还有一些不是pythons标准库的一部分。希望将其打包到单个可执行文件中。因此,我们尝试使用pyinstaller。执行时也是如此-它会建立分发文件夹-但无法执行。它抛出以下错误: 下面是运行命令时的输出 有人能帮我做同样的事吗。。我怎样才能解决这个问题?

  • 问题内容: 我尝试将一些数据发布到Wicket网页。如果数据采用表格形式,则效果很好。但是,我想用jQuery的ajax- post发布数据。我无法在我的Page构造函数中获取此数据。 这是我的jquery命令: / testjson是已安装的WebPage。 这是构造函数。我看到的是输入流为空。然而,在调试的时候,我看到了原始数据,我在贴在我的 tl; dr 如何在Wicket页面中获取原始帖子

  • 我的数据未发布在postman api中,这会导致以下错误: 单调的节奏。我的主人。com/api/领域:1个职位http://dradiobeats.x10host.com/api/areas401(未授权)核心。js:4002错误HttpErrorResponse 我的app.component.ts 如何解决此错误?

  • 我使用fetchapi发布表单中的一些数据,这很有效。 但是我面临一个问题,问题是当我发布数据时,状态不会更新,是的,我知道我没有使用setState(),但没有设置它。然而 目前,我正试图通过控制台日志来调试该问题,结果发现没有使用主体。 提交功能: 这是第一次使用提取API。Tm真的很困惑为什么这行不通,任何帮助都将不胜感激。我知道链接。然后(),但我不能让它与POST请求一起工作。 我想做的

  • 数据库有执行和提取功能,当我试图返回列值后插入或更新使用执行,它只返回第一个值,如何得到所有的值不使用提取... 这是我的查询 INSERT INTO表(col1, col2, col3, col4)VALUES(val1, val2, val3, val4)返回col1, col2;