我是erlang和编程的新手,我正在寻找一种方法,如果有方法的话,可以使用套接字连接到twitter API。 所以我想知道的是,无论如何都要在套接字中传递http请求/ URL吗?
我希望阅读或查看任何信息。 示例代码我可以看到gen_tcp,socket,ssl或者你认为最聪明的方法。 (连接到twitter /发送请求)。
除非我真的需要,否则我不想使用其他构建的库。
提前致谢, 埃拉赫
答案 0 :(得分:0)
听起来你需要HTTP客户端库。 我认为您没有任何理由通过自己的TCP套接字和gen_tcp
来实施HTTP协议。 Erlang标准库已经包含一个名为httpc的文件。
此外,还有很多第三方http客户端用于一般用途:
要与API互动,我建议您查看gun。正如项目页面所说,它遵循下一个目标:
Gun旨在提供与HTTP,SPDY兼容的易用客户端 和Websocket。
枪始终连接。它将保持永久连接 服务器,一旦服务器关闭它就重新打开它,节省时间 对于进来的请求。
所有连接都会自动监控,允许开发人员 专注于编写代码而不用担心。
如果您需要有关gen_tcp
模块和网络互动的更多常规信息,我建议您从this great book开始。
<强> UPD:强> 更具体地说,在Twitter流API上(你的意思是this one?)。要读取流数据,您可以使用http客户端的流媒体接口:
ok = application:start(inets).
{ok, Ref} = httpc:request(get, {RequestURL, RequestHeaders}, [], [{sync, false}, {stream, self}]).
之后,您将收到以下消息进入进程邮箱:
{http, {Ref, stream_start, ResponseHeaders}}
。{http, {Ref, stream, ResponseBodyChunk}}
。{http, {Ref, stream_end, ResponseHeaders}}
。启动此类流后,您应该通过接收接收收到消息并根据Twitter流媒体协议进行处理。
请参阅有关httpc库的文档。你真的不应该在这里使用gen_tcp
套接字。