Go 登录请求之后的POST请求仍然要求权限

Go 登录请求之后的POST请求仍然要求权限,go,post,login,net-http,Go,Post,Login,Net Http,我正在尝试向指定的URL(网页)发送两个PostForm请求,其中一个是“登录”,另一个是“创建产品”。问题是第二个请求(创建产品)与第一个请求(登录)分开运行。这就是为什么尽管登录成功运行,但服务器向我发送了一个权限错误(“必须先登录才能创建产品”) 我想,这是因为并发性,所以我也使用了通道,甚至时间包,但它们都不起作用。有什么解决办法吗 func login(c chan string) { resp, _ := http.PostForm("http://example.com/l

我正在尝试向指定的URL(网页)发送两个PostForm请求,其中一个是“登录”,另一个是“创建产品”。问题是第二个请求(创建产品)与第一个请求(登录)分开运行。这就是为什么尽管登录成功运行,但服务器向我发送了一个权限错误(“必须先登录才能创建产品”)

我想,这是因为并发性,所以我也使用了通道,甚至时间包,但它们都不起作用。有什么解决办法吗

func login(c chan string) {
    resp, _ := http.PostForm("http://example.com/login",
        url.Values{"username": {"sth"}, "password": {"sth"}})
    defer resp.Body.Close()
    body, _ := ioutil.ReadAll(resp.Body)
    time.Sleep(5000 * time.Millisecond)
    fmt.Printf("%v", string(body), "\n")
    c <- string(body)
}

func CreateProduct() {
    resp, _ := http.PostForm("http://example.com/product",
        url.Values{"name": {"sth"}})
    defer resp.Body.Close()
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Printf("%v", string(body), "\n")
}

func main() {
    c := make(chan string)
    go login(c)
    str := <-c
    if str != "" {
        CreateProduct()
    }
}
func登录(c chan字符串){
resp,quo:=http.PostForm(“http://example.com/login",
url.Values{“username”:{“sth”},“password”:{“sth”})
延迟响应主体关闭()
正文,Util:=ioutil.ReadAll(分别为正文)
时间。睡眠(5000*时间。毫秒)
fmt.Printf(“%v”,字符串(正文),“\n”)

c你不需要或不想要这个频道

您需要发送cookie或授权标头。请检查您尝试使用的服务的文档,例如sbout身份验证


如果您指定哪些服务人员可能能够提供更多帮助,但作为一般准则-如果api可能需要令牌,如果网页可能需要cookie,但请注意,在这种情况下,您可能还需要绕过csrf保护。

您的第二个请求不会从第一个请求发送任何有关身份验证的信息,例如cookie会话或身份验证令牌。因此,接收服务器无法知道第二个请求来自与第一个相同的客户端。首先,非常感谢您的响应。实际上,这是一个包含两个POST API的网页,一个用于登录,一个用于创建产品