gpt4 book ai didi

go - 调用 TCP : Protocol not available go webassembly test

转载 作者:IT王子 更新时间:2023-10-29 01:40:30 27 4
gpt4 key购买 nike

尝试去测试一个触发 POST 请求的 web-assembly 函数。

收到以下错误:

firePing_test.go:40: ERROR ON POST REQUEST: Post https://not-the-real-api.execute-api.us-east-1.amazonaws.com/testing: dial tcp: Protocol not available

运行:Ubuntu 18.04.2 长期支持版去版本go1.12.2 linux/amd64

我已经测试过该函数是有效的,并且在chrome中执行时会发送请求。为 linux/amd64 编译时测试也通过。

问题函数:

// FirePing fires a ping
func FirePing(protocol *string, domain *string, params *map[string]string) (*http.Response, error) {

// Marshal map into POST request body
reqBody, err := json.Marshal(*params)
if err != nil {
return nil, fmt.Errorf("ERROR ON MARSHAL OF PARAMS: %v", err)
}

// Send POST request
req, err := http.NewRequest("POST", *protocol + "://" + *domain, bytes.NewBuffer(reqBody))
if err != nil {
return nil, fmt.Errorf("ERROR ON FORMING REQUEST: %v", err)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil,fmt.Errorf("ERROR ON POST REQUEST: %v",err)
}

return resp, nil
}

问题测试函数调用:

// FirePing and receive response
resp, err := FirePing(&config.Config.Protocol, &config.Config.Domain, &m)
if err != nil {
t.Error(err)
return
}

应该通过此测试用例,因为它在浏览器中正常执行函数调用。

我只在其他地方看到过:

http.Get returns Protocol not available error

哪些接缝来自 playground 禁用 tcp 连接。我在本地运行这个测试

最佳答案

MVP 版本专门针对在浏览器中运行 WASM。因此,浏览器 API 不允许任意 TCP/IP 连接,因此 WASM 同样受到限制。也就是说,WASM 一直有超越浏览器的雄心。最新倡议称为WASI将添加需要在浏览器外部使用的功能,例如文件 I/O 和网络原语。

关于go - 调用 TCP : Protocol not available go webassembly test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55880920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com