> On Dec. 1, 2012, 7:07 p.m., Dawit Alemayehu wrote: > > Why not simply use KIO::get instead of KIO::mimetype ? For the record, one > > should never use KIO::mimetype for HTTP based protocols since it results in > > a HEAD request. It is a well known issue that sending a HEAD request to > > webservers, which for the most part generate content dynamically, is a > > useless proposition because the mime type they return on such request will > > be wrong most of the time (HEAD will not result in the generation of the > > content and hence the default type will probably be returned). Hence, the > > rule about not using KIO::mimetype for HTTP or any of its extensions like > > webdav. Instead you should simply do a KIO::get request by following the > > instructions on how to put a request on hold if all you want to do is > > determine the real mimetype of the content. This has even the side benefit > > of being able to use the same connection if you then decide to pull down > > the content afterwards. > > > > Havig said that, I am unable to test your patch because I do not have > > access. The links you provided are protected by HTTP authorization.
Yes, those links need authorization (unfortunately I don't know any webdav:// links that do not require it). About using KIO::get - thanks for useful infrmation, I did not know about this rule about not using KIO::mimetype for HTTP (did not see it anywhere), still it's really inconvenient to create additional code path for some protocols. Anyway bug when KIO::mimetype() returns just empty string is really annoying :( From what I understand it should never do that. Btw, just a sample ouptput from webdav.yandex.ru when doing HEAD request ( user and password omitted:) ): curl -I https://webdav.yandex.ru HTTP/1.1 415 Unsupported Media Type Yandex-Uid: 161224872 Server: MochiWeb/1.0 Keep-Alive: timeout=300 Date: Sat, 01 Dec 2012 19:48:57 GMT Content-Length: 0 - Sergey ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/107518/#review22888 ----------------------------------------------------------- On Nov. 29, 2012, 5:42 p.m., Sergey Borovkov wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/107518/ > ----------------------------------------------------------- > > (Updated Nov. 29, 2012, 5:42 p.m.) > > > Review request for kdelibs. > > > Description > ------- > > KIO::mimetype() when used on webdav:// url returned empty string on some > servers, empty string on others. After some investigating I found out that > mime-type is determined like for usual http:// links - i.e. making HEAD > requests. > But this is problematic - some servers do not return content type for webdav > links (for example this behavior occurred on webdavs://webdav.yandex.ru). > Even if server returns content-type it can be wrong - for directories HEAD > request return text/xml (that happens because webdav directories are simply > xml listings). > I tried to fix this by essentially calling stat on webdav url and emitting > mimetype when it's found. > > > Diffs > ----- > > kioslave/http/http.h 4d0b029 > kioslave/http/http.cpp b7f8e8d > > Diff: http://git.reviewboard.kde.org/r/107518/diff/ > > > Testing > ------- > > Tested this on two webdav servers (webdavs://webdav.yandex.ru and > webdavs://dav.2safe.com). > > > Thanks, > > Sergey Borovkov > >