Comment detail

HTTPでGET その2 (Nested Flatten)

特にproxy用のインタフェースはありませんが、http-getのserver引数にproxyサーバ、url引数に目的とする絶対URLを指定してやればproxyを通したアクセスになります。

タイムアウトはhttp-get自体ではまだサポートしていないので、スレッドを使ってみました。なのでpthreadサポートが必要ですが、pthreadが動けばOS非依存のはず。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
(use rfc.http)
(use gauche.threads)

(define *proxy* "localhost")
(define *timeout* 1.0) ;seconds

(define (get/proxy-and-timeout url)
  (let1 t (make-thread (lambda () (receive r (http-get *proxy* url) r)))
    (or (thread-join! (thread-start! t) *timeout* #f)
        (begin (thread-terminate! t) #f))))

Index

Feed

Other

Link

Pathtraq

loading...