资源描述:
《android网络之httpurlconnection和socket关系解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android网络之.HttpUrtConncction和Socket关薮弊折劣不以前Android的网络讹求只fjApache开激的HttpChent和JDK的HttpUrlConnection・近儿年KiffOkHttp的流行Android化岛版$的SDK屮加入OkHttp.但在Android官力•文山惟時使用HttpUrlConnection井且其会一Riftift护・所以在学习Android网络相关的知识时我们队HttpUrlConnection要仔足够的了解••••烧几天因为时何的关泵只価了13HttpUrlConnectionSocke
2、t的关系因.木来说好的第二天续丐,结果拖到了册末晚上.幸好时冋还来的及.世这短时冋彫响深刻.密自己解析代码过理记录下来.(PS:解析的过程令什么地方不明白的可以苛荷HttpUrlConnection和Socket的浜喪图图小讲出的过程和这次代码分析的过程是一样的.只不过代码讲述更加详铝・所彳]叛码郁是来自Androld4.0.4.有代码俄有真相T*!)类结构图先给大彖展示一张tfl浜类的结徇图IHttpUrlConnection和Socket关系类图HttpUrlConnection使用在分析代码的时傲找柏电酋郴加海中耍仔一个URL的请求过程.这是我
3、在网上捕的个HttpUrlConnection请求小Demo:publicclassEsmTest(/"4AilHttpURLConnection枳拟post农单琨交*(©throwsException7@TestpublicvoidsendEms()throveException{Stringwen=”MS2201828・;StringbtnSearch工rEMS快逊含询”;URLurl=newURL("hltp//v/wwkdl85com/cms.php”);HttpURLConnectionconn=(HttpURLConnection)url
4、.openConnection();conn.sctRcqucstMctbodC'POST1);//提交模亢//conn.setConnectTimeout(lOOOO);〃连搖越时单位怎杪//conn^etReadTimeout(2000)y/i$取超时单位奈抄conn.ietDoOutput(tfue);//是否输入参故StringBufferparams=newStringBufferO;//表单签数与get形式•样param$.appendfwen").append("=,,).append
5、wen).append(,'&")appcnd("
6、btnScarch*).appcnd("=").appcnd(btn$carch);bytc
7、]bypcs=params.toString()gctBytcsO;conn.gctOutputStrcam(
8、.writc(bypc$);//输入簽fitInputstreaminStream=conn.getlnputStream();System.out.println(newStnnglStteamTooI.readlnputStreamfinStream),"gbk*)
9、;publicvoidsendSmsi)throwsException(Str
10、ingmessages'^已反到";message=URLEncoder.encode(rr»essage,"UTF-8");Sy5tcm.outprintln(mcssagc);Stringpath=Hhttp://localhost:808yDS_Trade/mobile/simiadd.do?me5S3ge=n*me55age;URLurl=newURL(path);HttpURLConnectionconn=
11、HttpURLConnection)url.openConnectionO;conn.setConnectTimeout(5*1000
12、};connsctRcqucstMctbod^GET*);inpvtStreaminStream=conn.getlnputStream();byte[]data=StreamTool.feadlnputStream(inStream);Stringre$ult=newStnng
13、dataz”UT「・8・);System.out.println(result);}URL产生Wi求/••••••••“•••••••urljava""""・•••・••••”/严•创建一个新的URl实例7publicURL(Strmgspec)throwsMalforme
14、dURLException{this((URL)null,spec,null);publicURL(URL