タグ

ブックマーク / lab.klab.org (2)

  • HTTPクライアントを書いてみた(Ruby Socketクラス)

    amo-kさんにつづき、私(takda-at)もHTTPクライアントを実装してみました。 まずはRubyのコードです。Rubyでは、socketというネットワークプログラミング用のライブラリが標準で用意されています。その中でもTCPSocketなどのクラスを利用するとHTTPクライアントなども非常に簡単につくれるのですが、今回は勉強のため、あえて低レイヤーなところから書いています。 socketライブラリの中でも、Socketクラスは、ソケットをシステムコールレベルで操作するための機能を提供しています。メソッド名などもシステムコールと同じ名前が採用されているようです。 Rubyリファレンスマニュアルの説明にはそこまで詳細な解説が無いので、LinuxなどのManPageも合わせて見た方が参考になります。 また今回は勉強のために、socketライブラリのソースコードも少しのぞいてみました

    tettsyun
    tettsyun 2009/07/20
    http client
  • HTTPクライアントを書いてみた(Ruby open-uri, net/http, TCPSocket)

    Ruby でHTTP通信をする方法はいくつかあります。 最も簡単なのは、open-uriを使う方法でしょう。 単純にあるURIに対してGETリクエストを送り、返されたHTMLを表示するだけなら、以下のように1行で済ませることもできます。 $ ruby -ropen-uri -e 'open(ARGV[0]){|f| puts f.read }' http://www.klab.jp/ しかし簡単な分、open-uriではPOSTができなかったり、制約もあります。そういうときは net/http を使うといいです。 require 'uri' require 'net/http' Net::HTTP.version_1_2 uri=URI(ARGV[0]) Net::HTTP.start(uri.host, uri.port){|http| puts http.get(uri.path).

    tettsyun
    tettsyun 2009/07/20
    http client
  • 1