/* Client request 
 * \x00 - null bytes, no newlines after them 
 * (added for readability)!
 * // - comments
 */

POST / HTTP/1.1
Host: 192.168.0.3:8008
Content-Type: application/xml
Accept: */*
Connection: close
Content-Length: 390
Connection: Keep-Alive
User-Agent: Nokia5300/2.0 (03.50) Profile/MIDP-2.0 Configuration/CLDC-1.1 UNTRUSTED/1.0
x-wap-profile: "http://nds1.nds.nokia.com/uaprof/N5300r100.xml"

k=image/jpeg\x00
o=280\x00                                                                // 285 for OM 3.xx
u=/obml/http://operamini.com/\x00                                        // URL of page
q=ru\x00                                                                 // Language code
v=Opera Mini/2.0.4509/hifi/woodland/ru\x00                               // Version
i=Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1630; ru; U; ssr)\x00       // Equivalet desktop version
s=-1\x00
n=1\x00
A=CLDC-1.1\x00
B=MIDP-2.0\x00
C=nokia5300/03.50\x00                                                    // Device info
D=en\x00                                                                 // Device language code
E=ISO-8859-1\x00                                                         // Preferred device encoding
d=w:240;h:320;c:16777216;m:1966084;i:1;q:0;f:0;j:0;l:256\x00             // Width,Height,NumColors,HeapSize,ImgOn(Text/Yes/None),ImgQuality(Low/High) 
c=234314b988c03b139887e0a8596a487362b9849943199c80147bbf4353db80f9\x00   // AuthCode
h=t19-14\x00                                                             // AuthPrefix
f=http://ya.ru/                                                          // Referrer
g=1\x00
b=mod2.06\x00                                                            // Client modification (any string)
y=ru\x00                                                                 // Language code
t=0\x00                                                                  // Show phone numbers as links
w=1;0\x00                                                                // Part in multipart page
e=def                                                                    // Compression: def (Deflate, 2.xx+) or none

/* If there is a form data, it's added to end of req as such: */
...
e=def\x00
j=opf=1&q=Yukaba&btnG=Search+in+Google

/*
 * Server answer
 */
 
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Connection: close
Content-Length: 3191

...binary data...

/*
 * Code part from BalletMini, that forms request
 */
  sprintf(buf,"k=image/jpeg");
  ...
  sprintf(buf,"o=280");
  ...
  sprintf(buf,"u=/obml/%s",URL);
  ...
  sprintf(buf,"q=%s",LangCode);
  ...
  sprintf(buf,"v=Opera Mini/2.0.4509/hifi/woodland/%s",LangCode);
  ...
  sprintf(buf,"i=Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1630; %s; U; ssr)",LangCode);
  //sprintf(buf,"i-ua=Opera/9.10 (Windows NT 5.1; U; ru)");
  ...
  sprintf(buf,"s=-1");
  ...
  sprintf(buf,"n=1");
  ...
  //sprintf(buf,"A=CLDC-1.0");
  sprintf(buf,"A=CLDC-1.1");
  ...
  sprintf(buf,"B=MIDP-2.0");
  ...
  sprintf(buf,"C=j2me");
  ...
  sprintf(buf,"D=%s",LangCode);
  //sprintf(buf,"D=ru");
  ...
  sprintf(buf,"E=ISO-8859-1");
  ...
  switch(PIC_QUALITY)
  {
  case 0:
  default:
    i=2;
    j=0;
    break;
  case 1:
    i=0;
    j=0;
    break;
  case 2:
    i=1;
    j=0;
    break;
  case 3:
    i=1;
    j=1;
    break;
  }
  ...
  sprintf(buf,"d=w:%d;h:%d;c:65536;m:%d;i:%d;q:%d;f:0;j:0;l:256",ScreenW(),ScreenH(),JAVA_HEAP_SIZE,i,j);
  ...
  sprintf(buf,"c=%s",AUTH_CODE);
  ...
  sprintf(buf,"h=%s",AUTH_PREFIX);
  ...
  if (from_url)
  {
    sprintf(buf,"f=%s",from_url);
    ...
  }
  
  sprintf(buf,"g=1");
  ...
  sprintf(buf,"b=mod2.04");
  ...
  sprintf(buf,"y=%s",LangCode);
  ...
  sprintf(buf,"t=-1");
  //sprintf(buf,"t=2");
  ...
  sprintf(buf,"w=1;1");
  //sprintf(buf,"w=1;0");
  ...
  sprintf(buf,"e=def");
  ...
  if (goto_params)
  {
    sprintf(buf,"j=opf=1");
    ...
  }
  
