> , 我怎样才能将它拆分以便我只能检索主机 ( http://www.google.com )? 我从这样的事-6ren">
gpt4 book ai didi

http - 在 Erlang 中解析二进制文件

转载 作者:可可西里 更新时间:2023-11-01 16:23:57 35 4
gpt4 key购买 nike

如果我有以下二进制文件:<<"GET <a href="http://www.google.com" rel="noreferrer noopener nofollow">http://www.google.com</a> HTTP/1.1">> , 我怎样才能将它拆分以便我只能检索主机 ( http://www.google.com )?

我从这样的事情开始:

get_host(<<$G, Rest/binary>>) -> get_host(Rest);<br/>
get_host(<<$E, Rest/binary>>) -> get_host(Rest);<br/>
get_host(<<$T, Rest/binary>>) -> get_host(Rest);

但我不确定如何从这里继续。我在想倒车Rest并从二进制文件的末尾重新开始。

最佳答案

您似乎正在尝试为 HTTP 1.1 实现一个最小的解析器.这是 one solution它确实遵循 HTTP 1.1 的规范并解析 http 请求的第一行。在不知道您的具体情况的情况下,我会在大多数情况下建议在简化的“拆分二进制”或类似内容之前使用通用 HTTP 解析器。

1> erlang:decode_packet(http,<<"GET http://www.google.com HTTP/1.1\n">>,[]).  
{ok,{http_request,'GET',
{absoluteURI,http,"www.google.com",undefined,"/"},
{1,1}},
<<>>}

关于http - 在 Erlang 中解析二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431464/

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