2016-06-24 4 views
0

私はRuby 2.0を使用してOwncloudサーバー(Sabre/webDAV)と対話しようとしています。 HTTPヘッダに情報を渡す必要があるファイルのリストを取得するためのCurlの例があります。このヘッダ情報をRubyからどのように渡すことができますか? net_dav docsが、これは利用できる方法であることを示しているように見えるが、ルビーの誤差がそう示唆しているようだ:RubyでWebDAVヘッダーを送信するには?

EDIT

# curl -s -X PROPFIND -H "Depth: 100" -H "Content-Type: application/json" -u ${username}:${passwd} https://myserver.net/remote.php/webdav | egrep href 
:固定構文エラー headers =

undefined method headers= for #<Net::DAV:0x00000001276d10> (NoMethodError)

curlコマンドheaders()

ルビーコード:

# get list of files 
    url = "https://myserver.net" 
    path = "/remote.php/webdav/" 

    dav = Net::DAV.new(url, :curl => false) 
    dav.verify_server = true 
    dav.credentials(user, pass) 
    dav.headers ("Depth: 100") # << something wrong ? 

    # get list of files 
    path = "/remote.php/webdav/" 
    options = '' 
    props = dav.propfind(path, options) 
+0

奥行き:100は物ではありません。 '0'、 '1'、または '無限大'しか指定できません – Evert

+0

本当ですか? 0-3からの深さを変えることは、私にディレクトリ構造の論理的なレベルを与えるようです。 「無限」は確かに私が望むものです。ありがとう。 – Koko

+0

対話しているサーバが 'Depth:3'をサポートしている場合、そのサーバは非標準機能も実装しています。参考:私はwebdavの仕事の_lot_を行ったし、あなたも仕様でそれを見つけることができます;) – Evert

答えて

0

最後に、私はrubygems.orgのv0.5 Gemがnet_dav githubページのv0.5コードのかなり後ろにあることを知りました。 This commentは、動作する更新されたGemを取得する方法を示しています。

0

dav.headers()を使用するようにリンクされたドキュメントには、dav.headers =が使用されています。多分それは問題ですか?

+0

良いキャッチ。私が貼り付けたコードは括弧で試した後でした(私はRubyを初めて使っています:/)。修正されましたが、 'NoMethodError'エラーが発生しました – Koko

関連する問題