请问如何优雅地从多行字符串内提取数据
起因
我打算写一个http代理的小脚本,在处理 http报文时产生了对能否更优雅地提取参数比较好奇
测试数据
在不考虑更多数据对情况下,我们取两行http报文头做测试数据,假设这些数据已经存入了名为test的字符串变量中
GET / HTTP1.1
HOST: www.baidu.com
目标、个人解决方法与
设这里我想提取HOST的值www.baidu.com
我的解决方法是:fmt.Sscan(test[strings.Index(test,"\n"):],&space,&adr)
我打算先截取字符串取第二行往后数据,然后将HOST:
这个字段传入打算废弃的变量space中,而将有效的www.baidu.com
存入adr内
问题
除了这种方法,有没有更优雅地方法取出www.baidu.com
这个数据。
比如不需要写这个废弃变量与更多行代码就可以精准取出。
麻烦各位了。
1、使用net/http库就好了,反向代理十几行代码就搞定了,关键就几行。 2、如果你要自己解析的话,使用\r\n作为切割符号切割就好,header name也是规范的。 3、解析http请求我这个有个自己写的 github.com/eudore/eudore/blob/mast... 里面还有一个支持长连接的深入版本。
参考:
www.flysnow.org/2016/12/24/golang-...
staight.github.io/2019/10/24/golan...