2011-09-19 5 views
1

にファイルを置く当社のバックオフィスソフトウェアにファイルを移動します。 PUTコマンドも実装しています。Windowsエクスプローラを使用してファイルを作成すると問題なく動作します。私は何のコンテンツを取得していない、 は、しかし、私は(送信の助けを借りて、それは違いはありません)は、Mac OS XのFinderを使用するときにサーバーにファイルをPUTします。 私は、リバースプロキシとしてフィドラーを構成し、そしてそれは私に次のリクエストを示していますリンゴファインダーWebDAVクライアントを簡単に(再)/追加できるように、私は、WebDAVサーバーを作成していていないコンテンツ

PUT http://localhost:15001/WebDav/test.txt HTTP/1.1 
User-Agent: TransmitFSHelper/1.0.2 neon/0.29.3 
Connection: TE 
TE: trailers 
Host: localhost:49416 
Content-Length: 0 

これは、任意のコンテンツを送信しません。 私は「トレーラー」について何かを読んでいる、エトセトラをコードするチャンクが、彼は、ファイルの内容を送信するために取得するために、クライアントに応答するワット知りません。新しいファイルが(のfopen(「BLA」、「W」))が作成されると

答えて

1

最初の空のファイルがディスク上に表示されます。このため、0バイトのファイルで最初の要求が表示されます。その後、プログラムはファイルに追加されますが、これは別の要求になります。

したがって、0バイトのファイルを正しいものとして扱い、201 Createdを送り返します。その後、2次要求が表示されます。

ただし、クライアント(Finderなど)がHTTP要求でチャンクエンコードを使用することもあります。私はPHPでwebdavサーバーを実装しました。FastCGIとFinderを使用するときは動作しません。サーバーはmod_phpで動作する必要があります。

チャンクされたリクエストが失敗するか、成功するかどうかはスタックによって異なりますが、.NETではわかりません。しかし、少なくとも2つの要求が1つではなくサーバーに送られるのを見ることができるはずです。チャンクされたエンコーディングの問題はそれとは別です。

関連する問題