> 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
> 
>

Reply via email to