如何在 HTTP 标头值中放置回车符

Gav*_*ins 0 vb.net http http-headers

我有一个类似于以下内容的 HTTP Web 请求:

    Dim myrequest As HttpWebRequest = HttpWebRequest.Create("myURL")
    myrequest.Proxy = Nothing
    myrequest.UserAgent = "AGENT"
    myrequest.Method = "POST"
    myrequest.ContentLength = 0

    myrequest.Headers.Add("KEY1", value)
    myrequest.Headers.Add("KEY2", value)


    Dim myresponse As HttpWebResponse = myrequest.GetResponse
    Dim mystream As System.IO.Stream = (myresponse.GetResponseStream)

    Dim streamreader As New System.IO.StreamReader(mystream)
    return streamreader.ReadToEnd
Run Code Online (Sandbox Code Playgroud)

问题是我无法发送以下任何值来在标题值中放置换行符。到目前为止,我已经尝试过:

新行

vbCrLf

vbCR

低频

这些会产生一个错误,指出“指定的值具有无效的 CRLF 字符”我也试过

\n

\r\n

它只是将字符串文字添加到我的值中,不包括回车符。在服务器端,我想获取此标题中包含的值并将其放入 MySQL 的列中。

MrT*_*Tux 5

Http 标头不得包含新行,因为它被定义为标头分隔符。

参见https://tools.ietf.org/html/rfc7230#section-3,尤其是https://tools.ietf.org/html/rfc7230#section-3.2.6