gpt4 book ai didi

go - http.NewRequest() 在请求方法无效时不会抛出错误

转载 作者:IT王子 更新时间:2023-10-29 02:26:15 26 4
gpt4 key购买 nike

package main

import (
"log"
"net/http"
)

func main() {
// invalid method called "bad"
req, err := http.NewRequest("bad", "https://www.google.com", nil)
if err != nil {
log.Printf("E! got err: %v", err)
} else {
log.Printf("I! request method: %s", req.Method)
}
}

https://play.golang.org/p/NM8_4pkN5uM

err 在这里是 nil,谁能解释一下?

谢谢!

最佳答案

bad 不被视为不良的 http 方法。

任何具有 !#$%&*+-.0123456789ABCDEFGHIJKLMNOPQRSTUWVXYZ^_`abcdefghijklmnopqrstuvwxyz|~ 字符的非零长度字符串均被视为有效

以下是用于验证 HTTP METHOD 的函数

func validMethod(method string) bool {

/*

Method = "OPTIONS" ; Section 9.2

| "GET" ; Section 9.3

| "HEAD" ; Section 9.4

| "POST" ; Section 9.5

| "PUT" ; Section 9.6

| "DELETE" ; Section 9.7

| "TRACE" ; Section 9.8

| "CONNECT" ; Section 9.9

| extension-method

extension-method = token

token = 1*<any CHAR except CTLs or separators>

*/

return len(method) > 0 && strings.IndexFunc(method, isNotToken) == -1

}

关于go - http.NewRequest() 在请求方法无效时不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49216260/

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