- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公司做了一个小型的wap浏览器的项目,其中涉及到用socket的实现http请求的方法,由于网上相关资料比较少,尤其是详细的资料比较少,所以走了不少弯路。在此仅从实现的角度说明MTK平台用Socket实现HTTP的方法,希望能给后来者一些微小的帮助。
?
一、MTK平台Socket联网过程熟悉PC机编程的人都知道,Socket编程接口分两套:TCP和UDP;TCP和UDP中又有服务器端和客户端的概念,这里讲的是TCP的客户端编程接口。
MTK平台中Socket创建步骤:
???????? 1、soc_create()? 创建Socket;
???????? 2、soc_setsockopt? 设置Socket为非阻塞模式;
???????? 3、soc_setsockopt? 设置Socket选项为连接,读,写,关闭;不清楚为什么要连续设置两次,如有高人路过,请指点;
??????? 4、如果是CMNET联网并且请求中用到了英文域名还需要解析域名soc_gethostbyname,除非使用ip作为域名,解析出来的IP作为我们建立连接的目标IP;如果是CMWAP联网,直接跳到第5步,直接连接移动或联通的网关:72:80;
??????? 5、soc_connect与服务器建立连接;
??????? 6、soc_send??? 发送请求;
??????? 7、soc_recv???? 接收服务器返回的数据;
??????? 8、soc_close??? 关闭Socket;
??????? 9、如果需要关闭数据账户soc_close_nwk_account
二、CMNET,CMWAP方式下的HTTP请求内容格式HTTP请求格式:
GET方法
MTK模拟器中wap浏览器发送的请求内容
“GET /goHTTP/1.1
Host:
User-Agent: SQH_D480B_01/LB19504/WAP2.0 Profile
Accept:? application/vnd.wap.wmlc, **? //(想当长,省去后面部分)
Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, GB2312, windows-1252, us-ascii
Accept-Language: zh-tw, zh-cn, en
Cookie: JSESSIONID=aAQP0FIXp3z7
Connection: Keep-Alive
?
“
?
POST方法
对一些需要向服务器传入参数的请求,按名称搜索等请求。还以空中网天气查询为例,之中的其他城市天气查询,输入其他城市名称或电话区号查询:
?
“POST /weather/search.jsp?setcity=1 HTTP/1.1
Host:
User-Agent: SQH_D480B_01/LB19504/WAP2.0 Profile
Accept: application/vnd.wap.wmlc, */*? //(想当长,省去后面部分)
Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, GB2312, windows-1252, us-ascii
Accept-Language: zh-tw, zh-cn, en
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Cookie: KONG_ACCESS=AWYZhg==; JSESSIONID=a91MDc6qoMYf
Connection: Keep-Alive
Content-Length: 46//get方法没有这一项
?
××××××//传给服务器46字节长的数据(参数)
“
当然如果是CMWAP联网方式也要和上述的GET方法一样设置Host和X-Online-Host项,Host:72
X-Online-Host:
以上的内容,可以在调试状态下运行模拟器的wap浏览器,在soc_send方法处插入断点观察。
?
HTTP的其他方法,由于在应用中没有用到,在这里不做介绍。
三、CMNET,CMWAP连接差别1、GPRS账户:
与pc机上的socket客户端接口不同,手机客户端在soc_create,soc_gethostbyname接口中都多了参数 nwt_acount_id,只的是一般在“网络服务”-“数据账户”-“GPRS”下的GPRS数据账户id,一般起始的一个账户id 是10,往下递增1,在建立连接过程中,如果是CMWAP方式联网,soc_create,soc_gethostbyname接
您可能关注的文档
最近下载
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.pdf VIP
- 2025年新改版人教版七年级上册地理全册精编知识点 (背诵用).pdf
- 三菱FR-D740变频器使用手册(应用篇)-说明书.pdf
- 2025年国家开放大学《农村经济管理》形考作业三答案.docx VIP
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.docx VIP
- DELTA台达ASDA-A2伺服驱动器使用手册.pdf
- 水工隧洞课件.pptx VIP
- 精益管理培训-拉动式生产方式.pdf VIP
- 部编版语文六年级上册第五单元【集体备课】.pptx VIP
- (完整版)华师版七年级下册数学知识点总结.pdf VIP
文档评论(0)