Hello i had the next problem, i want to answer to a Head request with a 
Content-Length. 

I put an example

HEAD /external/images/media/21.jpg HTTP/1.0

getcontentFeatures.dlna.org: 1

Host: 192.168.1.130:57645



HTTP/1.1 200 OK

Date: Tue, 21 Aug 2012 10:24:59 GMT

Cache-Control: no-cache

transferMode.dlna.org: Streaming

contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0

Content-Type: image/jpeg

Last-Modified: Sat, 25 Feb 2012 15:11:58 GMT

Content-Length: 60909

Accept-Ranges: bytes
----------------------------

The problem comes when i try to put Content-Length: 60909, I always get this 
exception "Content-Length header already present".

This is my code

public void handle(HttpRequest request,
                       HttpResponse response,
                       HttpContext context) throws HttpException, IOException 
{
String method = 
request.getRequestLine().getMethod().toUpperCase(Locale.ENGLISH);

if(method.equals("HEAD"))
{
MimeType mimeType = getMimeType(obj);
            long sizeInBytes = getSizeInBytes(obj);
            
            
            
            response.setHeader("Cache-control", "no-cache");
            response.setHeader("transferMode.dlna.org", "Streaming");
            String aMimeType = mimeType.toString();
            String dlnaspec="";
            
            if (aMimeType.equals("image/jpeg"))
                dlnaspec = "DLNA.ORG_PN=JPEG_LRG";
            else if (aMimeType.equals("audio/mpeg"))
                dlnaspec = "DLNA.ORG_PN=MP3";
            else if (aMimeType.equals("audio/L16") || 
aMimeType.equals("audio/wav"))
                dlnaspec = "DLNA.ORG_PN=LPCM";
            
            response.setHeader("contentFeatures.dlna.org", 
dlnaspec+";DLNA.ORG_OP=01;DLNA.ORG_CI=0");
            
            response.setHeader("Content-Type", mimeType.toString());
            response.setHeader("Accept-Ranges", "bytes"); 
            response.setHeader("Content-Length", String.valueOf(sizeInBytes));
          response.setStatusCode(HttpStatus.SC_OK); 
}
}
-----------------
I also have tried to put an empty entity in this way

ByteArrayInputStream stream=new ByteArrayInputStream(new byte[(int) 
sizeInBytes]);

InputStreamEntity entity = new InputStreamEntity(stream, sizeInBytes); 
response.setEntity(entity);
but the problem is that a Head method dont have a body message so this approach 
is not valid.

Any ideas?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to