CStringA headerBuffer = "POST http://" + MmscName + " /HTTP /1.1\r\n";
    headerBuffer += "Accept: image/png, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*\r\n";
    //网关地址, 目前移动联通都是 10.0.0.172:80
    headerBuffer += "Host: 10.0.0.172:80\r\n";
    headerBuffer +=  "X-Online-Host: " + MmscName + "\r\n";
    headerBuffer +=  "Pragma: no-cache\r\n";
    headerBuffer +=  "Cache-Control: no-cache\r\n";
    headerBuffer +=  "Connection: Keep-Alive\r\n";
    headerBuffer +=  "Accept-Encoding: deflate, gzip\r\n";
    headerBuffer +=  "User-Agent: SAMSUNG-SGH-E908/NetFront 3.2/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1\r\n";
    headerBuffer +=  "Accept: application/vnd.wap.mms-message, image/vnd.wap.wbmp, image/png, image/jpeg, image/gif, text/x-iMelody, text/x-imelody, application/x-midi, audio/midi, audio/mid, audio/x-mid, image/bmp, audio/mp3, audio/x-midi, audio/amr, application/vnd.smaf, application/vnd.wap.mms-message x-wap-profile:http://wap.samsungmobile.com/uaprof/e908_10.xml\r\n";
    //s_length 为彩信包的长度
    headerBuffer +=  "Content-Length:" + strLength + "\r\n";
    headerBuffer +=  "Content-Type:application/vnd.wap.mms-message\r\n\r\n";后面跟上的是PDU包.
最后用HttpSendRequest 同步方式,把所有数据发送出去。但都返回:
HTTP/1.1 200 OK, Success
Content-length: 0 不知道HTTP 用这种方式指定HTTP 头字段和BODY有没有问题? BODY是上面\r\n\r\n中直接跟上的PDU包,不知道格式有没有错误? 谢谢。

解决方案 »

  1.   

    基本上是对的,只不过Post后面的参数不用写完整个url路径,因为你已经写了Host参数,只要写相对于host的url地址就可以了。同时Content-Type你得具体调试一下,因为不同的服务器接收的数据类型是不一样的,有时你可能还得将Post的数据体转成UTF-8,有的服务器还得UrlEncode.
      

  2.   

    谢谢,我的也是参考了别人发彩信时用的代码:
    10.0.0.172:80 是移动的网关,MmscName是彩信服务器:mmsc.monternet.com,数据体也都转换了,还是有这样的错误。
      

  3.   

    谢谢,不过我在windows mobile上面,等会捉一下看看。
      

  4.   

    body里头还有文件数据,这个数据用不用也转换成UTF8类型的?