Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Erlang:使用套接字/gen_tcp连接到API_Sockets_Ssl_Twitter_Erlang_Gen Tcp - Fatal编程技术网

Sockets Erlang:使用套接字/gen_tcp连接到API

Sockets Erlang:使用套接字/gen_tcp连接到API,sockets,ssl,twitter,erlang,gen-tcp,Sockets,Ssl,Twitter,Erlang,Gen Tcp,我对erlang和编程都是新手,我正在寻找一种通过使用套接字连接到twitter API的方法,如果有的话。 所以我想知道的是,在套接字中是否有传递http请求/URL的方法 我想要任何信息阅读或查看。 示例代码,我可以看到gen_tcp、socket、ssl或您认为最聪明的方式。 (指连接到twitter/发送请求) 除非我真的需要,否则我不想使用另一个建成的图书馆 提前感谢,, Erlach听起来您需要HTTP客户端库我看不出有任何理由通过TCP套接字自己实现HTTP协议,而且gen_TCP

我对erlang和编程都是新手,我正在寻找一种通过使用套接字连接到twitter API的方法,如果有的话。 所以我想知道的是,在套接字中是否有传递http请求/URL的方法

我想要任何信息阅读或查看。 示例代码,我可以看到gen_tcp、socket、ssl或您认为最聪明的方式。 (指连接到twitter/发送请求)

除非我真的需要,否则我不想使用另一个建成的图书馆

提前感谢,,
Erlach

听起来您需要HTTP客户端库我看不出有任何理由通过TCP套接字自己实现HTTP协议,而且
gen_TCP
Erlang标准库已经包含一个名为

此外,还有大量第三方http客户端用于一般用途:

  • 对于与API的交互,我建议您看看。正如project page所说,它遵循以下目标:

    Gun旨在提供一个与HTTP、SPDY兼容的易于使用的客户端 还有Websocket

    枪总是连着的。它将保持与网络的永久连接 服务器关闭后立即重新打开,节省时间 对于收到的请求

    所有连接都是自动监控的,允许开发人员 专注于编写代码而不必担心

    如果您需要有关
    gen_tcp
    模块和网络交互的更多一般信息,我建议您从开始

    UPD: 更具体地说是推特流媒体API(你的意思是?)。要读取流数据,可以使用http客户端的流接口:

    ok = application:start(inets).
    {ok, Ref} = httpc:request(get, {RequestURL, RequestHeaders}, [], [{sync, false}, {stream, self}]).
    
    之后,您将在process mailbox中收到以下消息:

  • 第一条消息将是
    {http,{Ref,stream_start,ResponseHeaders}
  • 接下来的消息将是
    {http,{Ref,stream,ResponseBodyChunk}
  • 最后一条消息将是
    {http,{Ref,stream_end,ResponseHeaders}
  • 在您启动此类流之后,您应该通过receive接收输入消息,并根据twitter流协议进行处理


    请参阅有关httpc库的文档。您真的不应该在这里使用
    gen\u tcp
    套接字。

    感谢您的快速响应。这是否意味着您建议我使用httpc连接和套接字来“流”我得到的东西,还是我将这些东西混合在一起?每个http客户端都构建在tcp套接字之上(特别是,它们已经使用gen_tcp)。这意味着http客户端对您隐藏任何特定于tcp的详细信息,您与http客户端接口交互时将忽略任何特定于
    gen_tcp
    的详细信息。作为基本示例,您可以尝试以下操作:
    httpc:request(“http://stackoverflow.com)
    。这个调用将返回HTTP响应状态、HTTP头和页面正文。好的,那么如果我想连接到twitter api,我该怎么做呢?我会发送一个httpc请求,然后在一个socket recv中处理传入的数据吗?我想知道我的想法和这个问题是一样的:因为我真的不确定我应该如何使用你建议的其他第三方客户机或lib。