原文地址:golang报错:net/http: invalid header field value "Basic
昨天被这个问题困扰了一天,今天终于找到问题了。
先说一下我这里的流程:
1.从本地文件中读取一个 base64加密过的字符串。然后添加到header上。
auth := getAuth() //auth 为 Basic XXXXXX req.Header.Add("authorization", auth)
但是当执行 client.Do(req)时,会报错:如下图
经过一番"排查",发现当从文件读取字符串时,字符串往往后面会附带一个空行。也就是报错信息后面那些\x00\x00\x00\x00出现的原因了。
解决方法:
str, err := base64.StdEncoding.DecodeString(dataStr) realStr :=strings.TrimSpace(string(str)) str = []byte(realStr) dataStr = base64.StdEncoding.EncodeToString(str)
因为我的原信息时base64的所以我这里需要先base64decode, 然后去空行,然后再base64endoe。
如果你的原信息本身就是字符串,可以尝试直接去空行。
然后,问题解决~
完。
有疑问加站长微信联系(非本文作者)