On 03/11/2010 05:44 AM, vaibhav gurav wrote:
Hi Jeffrey , 
   
Thanks for your quick reply . 
I little bit found what is the problem,even though passing multipart
data buffer Gmime object created is of content type is text/plain . 
This I found out by  
code snippet:: 
const GMimeContentType* gmimecontentType =
g_mime_object_get_content_type(mimeObject); 
        if(gmimecontentType) 
        { 
            string gmimeType = gmimecontentType->type ; 
            string gmimesubcontentType = gmimecontentType->subtype ; 
        } 
---------- 
here I found value are gmimeType is text and
gmimesubcontentType is plain  
   
I am creating the GmimeObject to parse this curl buffer(i.e. end with
/r/n) 
   
Data buffer :: 
 
 
In order for GMime to know that it's a multipart, it needs to have a
Content-Type header which has a value of "multipart/<something>"
as well as a "boundary" parameter which, in this case, should have a
value of "abcd1234xwyz7890" 
 
 --abcd1234wxyz7890
   
Content-Type: text/vnd.wap.wml
   
   
 
Not sure why GMime is coming up with the Content-Type as being
text/plain, perhaps the boundary marker confused it? 
 
   
<?xml version="1.0"?>
   
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
   
<wml>
   
<template>
   
<do type="prev" name="sb" label="Go
Back"><prev/></do>
   
<do type="accept" name="PostResults" label="PostResults">
   
<go href=""/></do>
   
</template>
   
   
<card id="C1" title="Gif Image">
   
<h3>Gif Image in WML page</h3>
   
   
<p> verify that the image is displayed below.<br/>
   
<img src=""true"
 href="http://testsuite.nokia-boston.com/content/MultipartMixed/MultipartMixed_images/web1.gif"
 class="ot-anchor">http://testsuite.nokia-boston.com/content/MultipartMixed/MultipartMixed_images/web1.gif"
alt="Gif image"/><br/>
   
   
</p>
   
<p>
   
<anchor>
   
Post Results
   
<go href="">
   
</go>
   
</anchor>
   
</p>
   
</card>
   
   
   
</wml>
   
   
--abcd1234wxyz7890
   
Content-Type: image/gif
   
Content-Location: http://testsuite.nokia-boston.com/content/MultipartMixed/MultipartMixed_images/web1.gif
   
   
GIF89a 
   
-------------------------------- 
- how I parse this buffer using gmime  ? 
I am doing like this  
code snippet:: 
            g_mime_init(0); //only one time  
            g_mime_charset_map_init(); 
            g_mime_iconv_init(); 
//try to make GmimeObject so i can do parsing operation this  
GMimeStream* stream =
g_mime_stream_mem_new_with_buffer(static_cast<char*>(ptr),totalSize); 
g_mime_stream_seek (stream, 0, GMIME_STREAM_SEEK_END); 
g_mime_stream_write (stream, "\r\n", 1); //  as this curl buffer \r\n
giving it uses line endings 
g_mime_stream_reset (stream);     
GMimeParser* parser = g_mime_parser_new_with_stream(stream); 
GMimeObject* mimeObject = g_mime_parser_construct_part(parser); 
//checking the content type -Expected it must be mutipart/mixed(I pass
above data buffer in this ) 
if(gmimecontentType) 
        { 
            string gmimeType = gmimecontentType->type ; 
            string gmimesubcontentType = gmimecontentType->subtype ; 
        } 
//if is it mutipart  
if (GMIME_IS_MULTIPART(mimeObject)) 
        { 
        string multipartmainResourceType =
g_mime_object_get_content_type_parameter(mimeObject, "type"); 
        } 
Problem :: 
1.I am following right way or any other way to make buffer of multipart
data and parse this . 
2.After passing mutipart buffer this must  true on GMIME_IS_MULTIPART(..) ,but i am getting 
false value . 
   
 
The problem is that GMime needs the multipart headers as well, not just
the multipart's content (which is all you are giving to it). 
 
Hope that helps, 
 
Jeff 
 |