<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_云和山的彼端</title><subtitle type="text">江南好, 风景旧曾谙。日出江花红胜火，春来江水绿如蓝，能不忆江南。</subtitle><id>http://feed.cnblogs.com/blog/u/13292/rss</id><updated>2011-12-02T07:54:53Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/13292/rss"/><entry><id>http://www.cnblogs.com/jecray/archive/2011/12/02/2272237.html</id><title type="text">Researchers Find Security Vulnerability In Printers</title><summary type="text">Many electronic devices ship with Internet access these days. And I’m not talking about traditional devices like PCs or even gaming consoles, but more about peripherals like printers and household items such as fridges or microwaves.Columbia University researchers have discovered a vulnerability in </summary><published>2011-12-02T07:55:00Z</published><updated>2011-12-02T07:55:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/12/02/2272237.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/12/02/2272237.html"/><content type="html">&lt;span  style="font-family: 'Lucida Grande', Verdana, 'Lucida Sans Regular', 'Lucida Sans Unicode', Arial, sans-serif; font-size: 12px; background-color: #ffffff; "&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Many electronic devices ship with Internet access these days. And I&amp;#8217;m not talking about traditional devices like PCs or even gaming consoles, but more about peripherals like printers and household items such as fridges or microwaves.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Columbia University researchers have discovered a vulnerability in some Hewlett-Packard LaserJet printer lines that could allow attackers to install a modified&amp;nbsp;&lt;a href="http://www.ghacks.net/2011/11/30/researchers-find-security-vulnerability-in-printers/#"  id="KonaLink0" style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: initial; outline-style: none; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; vertical-align: baseline; text-decoration: underline !important; color: #0072bc !important; cursor: pointer; font-family: inherit !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: transparent !important; border-right-color: transparent !important; border-bottom-color: transparent !important; border-left-color: transparent !important; text-transform: none !important; display: inline !important; font-variant: normal; top: 0px; right: 0px; bottom: 0px; left: 0px; position: static; font-size: inherit !important; "&gt;&lt;font color="#0072bc" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #0072bc !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;&lt;span  style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 1px; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 1px !important; padding-left: 0px !important; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; border-top-style: none !important; border-top-color: initial !important; border-left-style: none !important; border-left-color: initial !important; border-right-style: none !important; border-right-color: initial !important; border-bottom-style: solid; border-bottom-color: initial; color: #0072bc !important; width: auto !important; float: none !important; display: inline !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;firmware&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;to steal information, run attacks from within a network or cause physical damage to the printer.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Attacks can be carried out from different vectors. Printers that support a remote firmware update process could allow attackers to take control of a printer&amp;#8217;s firmware over&amp;nbsp;&lt;a href="http://www.ghacks.net/2011/11/30/researchers-find-security-vulnerability-in-printers/#"  id="KonaLink1" style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: initial; outline-style: none; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; vertical-align: baseline; text-decoration: underline !important; color: #0072bc !important; cursor: pointer; font-family: inherit !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: transparent !important; border-right-color: transparent !important; border-bottom-color: transparent !important; border-left-color: transparent !important; text-transform: none !important; display: inline !important; font-variant: normal; top: 0px; right: 0px; bottom: 0px; left: 0px; position: static; font-size: inherit !important; "&gt;&lt;font color="#0072bc" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #0072bc !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;&lt;span  style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 1px; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 1px !important; padding-left: 0px !important; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; border-top-style: none !important; border-top-color: initial !important; border-left-style: none !important; border-left-color: initial !important; border-right-style: none !important; border-right-color: initial !important; border-bottom-style: solid; border-bottom-color: initial; color: #0072bc !important; width: auto !important; float: none !important; display: inline !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;the&amp;nbsp;&lt;/span&gt;&lt;span  style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 1px; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 1px !important; padding-left: 0px !important; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; border-top-style: none !important; border-top-color: initial !important; border-left-style: none !important; border-left-color: initial !important; border-right-style: none !important; border-right-color: initial !important; border-bottom-style: solid; border-bottom-color: initial; color: #0072bc !important; width: auto !important; float: none !important; display: inline !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;Internet&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;in less than a minute if the printer is not protected properly by a firewall. The researchers during a scan were able to find more than 40,000 devices that they said could be infected within minutes.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Local attacks are another possibility. The researchers were able to send print commands from Macintosh and Linux computer&amp;nbsp;&lt;a href="http://www.ghacks.net/2011/11/30/researchers-find-security-vulnerability-in-printers/#"  id="KonaLink2" style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: initial; outline-style: none; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; vertical-align: baseline; text-decoration: underline !important; color: #0072bc !important; cursor: pointer; font-family: inherit !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: transparent !important; border-right-color: transparent !important; border-bottom-color: transparent !important; border-left-color: transparent !important; text-transform: none !important; display: inline !important; font-variant: normal; top: 0px; right: 0px; bottom: 0px; left: 0px; position: static; font-size: inherit !important; "&gt;&lt;font color="#0072bc" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #0072bc !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;&lt;span  style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 1px; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 1px !important; padding-left: 0px !important; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; border-top-style: none !important; border-top-color: initial !important; border-left-style: none !important; border-left-color: initial !important; border-right-style: none !important; border-right-color: initial !important; border-bottom-style: solid; border-bottom-color: initial; color: #0072bc !important; width: auto !important; float: none !important; display: inline !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;systems&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;to trick the printer into reprogramming itself. It is not clear at the time of writing if Windows environments are safe or also affected by this.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Printers that the researchers analyzed do not verify the source of the firmware with the help of digital signatures. A HP spokesperson stated that all modern HP printers do require digitally signed firmware upgrades since 2009.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;Even worse for consumers and companies, there is no way of telling if a printer&amp;#8217;s firmware has bee compromised short from physically disassembling the printer and analyzing its chipset output.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;According to&amp;nbsp;&lt;a href="http://redtape.msnbc.msn.com/_news/2011/11/29/9076395-exclusive-millions-of-printers-open-to-devastating-hack-attack-researchers-say" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; text-decoration: none; color: #0000ff; background-position: initial initial; background-repeat: initial initial; "&gt;RedTape&lt;/a&gt;, HP is currently analyzing the claims made by the researchers. HP could release a firmware update of their own to resolve the vulnerability. Compromised printers however may have been programmed to block new firmware updates. That&amp;#8217;s bad on the one hand as companies would have to throw away the printer in this case (or talk to HP to find a solution) and good in another as they have just identified a compromised printer in their&lt;a href="http://www.ghacks.net/2011/11/30/researchers-find-security-vulnerability-in-printers/#"  id="KonaLink3" style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: initial; outline-style: none; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; vertical-align: baseline; text-decoration: underline !important; color: #0072bc !important; cursor: pointer; font-family: inherit !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: transparent !important; border-right-color: transparent !important; border-bottom-color: transparent !important; border-left-color: transparent !important; text-transform: none !important; display: inline !important; font-variant: normal; top: 0px; right: 0px; bottom: 0px; left: 0px; position: static; font-size: inherit !important; "&gt;&lt;font color="#0072bc" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #0072bc !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;&lt;span  style="border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 1px; border-left-width: 0px !important; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 1px !important; padding-left: 0px !important; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; border-top-style: none !important; border-top-color: initial !important; border-left-style: none !important; border-left-color: initial !important; border-right-style: none !important; border-right-color: initial !important; border-bottom-style: solid; border-bottom-color: initial; color: #0072bc !important; width: auto !important; float: none !important; display: inline !important; font-family: inherit !important; font-size: inherit !important; position: static; "&gt;network&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; vertical-align: baseline; color: #101010; background-position: initial initial; background-repeat: initial initial; "&gt;The researchers have started analyzing printers manufactured by other companies recently but no results have been posted yet. They say it is likely that printers and other devices with Internet access are also vulnerable. (thanks Jojo for sending in the tip)&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2272237.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/12/02/2272237.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/11/05/2237319.html</id><title type="text">SNAT/DNAT</title><summary type="text">转帖：我的routeros网关机器配置为赛扬433 CPU，64M SDRAM，540M希捷硬盘,SIS主板集成显卡,没有声卡,两块杂牌RTL8139D网卡,显示器鼠标键盘都没有接，上网类型为10M电信光纤固定IP,内部为一个小型局域网,在routeros中外网卡(WAN接口)名称为outside，ip地址为218.91.210.206,内网卡(LAN接口)名称为inside,ip地址为192.168.2.1,内网网络地址为192.168.2.0,内网通过100M普通交换机(SWITCH)接有12个16口10M集线器(HUB)，大约有150台电脑同时上网,在这样的配置下网络很稳定,router</summary><published>2011-11-05T14:08:00Z</published><updated>2011-11-05T14:08:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/11/05/2237319.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/11/05/2237319.html"/><content type="html">&lt;span style="font-family: Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif; line-height: 24px; "&gt;转帖：&lt;br /&gt;我的routeros网关机器配置为赛扬433 CPU，64M SDRAM，540M&amp;nbsp;希捷硬盘,SIS主板集成显卡,没有声卡,两块杂牌RTL8139D网卡,显示器鼠标键盘都没有接，上网类型为10M电信光纤固定IP,内部为一个小型局域网,在routeros中外网卡(WAN接口)名称为outside，ip地址为218.91.210.206,内网卡(LAN接口)名称为inside,ip地址为192.168.2.1,内网网络地址为192.168.2.0,内网通过100M普通交换机(SWITCH)接有12个16口10M集线器(HUB)，大约有150台电脑同时上网,在这样的配置下网络很稳定,routeros网关连续使用4个月没有重新启动过,还且网速很块,这样配置的网关成本大约200块钱(一台淘汰的二手主机)，却能稳定带动150电脑同时上网,真是奇迹,所以我以这个网络环境作为例子,相信有较好的实用性及普遍性。&lt;br /&gt;下面我们再说下snat和dnat的含义及应用场合:&lt;br /&gt;1.snat是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,A向B发出IP数据包,如果没有SNAT对A主机进行源地址转换,A与B主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后，公网IP会给你的私网IP回数据包，这时，公网IP根本就无法知道你的私网IP应该如何走了。所以问它上一级路由器，当然这是肯定的，因为从公网上根本就无法看到私网IP，因些你无法给他通信。为了实现数据包的正确发送及返回,网关必须将A的址转换为一个合法的公网地址,同时为了以后B主机能将数据包发送给A，这个合法的公网地址必须是网关的外网地址，如果是其它公网地址的话，B会把数据包发送到其它网关,而不是A主机所在的网关,A将收不到B发过来的数据包,所以内网主机要上公网就必须要有合法的公网地址,而得到这个地址的方法就是让网关进行SNAT(源地址转换)，将内网地址转换成公网址(一般是网关的外部地址),所以大家经常会看到为了让内网用户上公网,我们必须在routeros的firewall中设置snat，俗称IP地址欺骗或伪装(masquerade),现在我举个例子内网的A主机要上公网在routeros中怎么设置:&lt;br /&gt;首先我们说一下&lt;span style="color: red; "&gt;snat&lt;/span&gt;&lt;span style="color: red; "&gt;中几个参数的含义,action，这是说明用的哪种转换方式,通常我们用masqurade，nat这两种,在特殊情况下用accept(主要是内网中有公网地址存在的情况)方法，protocol说明对哪些传输协进行转换(通常有tcp,udp等),out-interface说明通过哪一个网卡进行转换(通常是外网卡outside)，to-src-address是将源地址伪装成哪些地址(可以是一个也可以是很多个),to-src-pot是将源端口伪装成哪些端口(可以是一个也可以是很多个),dst-address是指发向哪些主机的数据包要进行伪装(可以一个可以多个)，dst-port是指发向哪些端口的数据包进行伪装(可以一个可以多个)，src-address是指对哪些源地址进行伪装(可以一个可以多个),src-port是指从哪些源端口发出的数据包进行伪装(可以一个可以多个),从这些选项看出,routeros在snat中的设置功能是非常强大的,可以说弹性十足,&lt;/span&gt;可以满足几乎所有要求,现在我们接着说上面的问题,为了便以理解我们多举几例子。&lt;br /&gt;1.内网的A主机(192.168.2.8)要上公网，并且只使用公网B(61.132.62.131)主机的web服务(80端口),哪么可以这么设置:&lt;br /&gt;ip firewall src-nat add action=masquerade out-interface=outside protocol=tcp dst-address=61.132.62.131/32:80 src-address=192.168.2.8/32&lt;br /&gt;或者用下面命令也行&lt;br /&gt;ip firewall src-nat add action=nat out-interface=outside protocol=tcp dst-address=61.132.62.131/32:80 src-address=192.168.2.8/32 to-src-address=218.91.210.206&lt;br /&gt;可以看出masquerade和nat这两种不同的方法区别在于nat必须多设置一个to-src-address参数为了简单起见，下面的例子我们都以nat方式为模型&lt;br /&gt;2.内网所有主机(192.168.2.0)要上公网，并且只使用整个公网上的主机web服务(80端口),哪么可以这么设置:&lt;br /&gt;ip firewall src-nat add action=nat out-interface=outside protocol=tcp dst-address=0.0.0.0/0:80 src-address=192.168.2.0/24 to-src-address=218.91.210.206&lt;br /&gt;&lt;br /&gt;3.内网所有主机(192.168.2.0)要上公网，并且使用整个公网上的所有主机的所有服务,哪么可以这么设置:&lt;br /&gt;ip firewall src-nat add action=nat out-interface=outside src-address=192.168.2.0/24 to-src-address=218.91.210.206&lt;br /&gt;&lt;br /&gt;4.现在来个特珠点的,要求不管哪里来的数据包,不管到哪个地方方去的数据包都伪装一下地址该怎么做呢方法如下:&lt;br /&gt;ip firewall src-nat add action=nat to-src-address=218.91.210.206&lt;br /&gt;呵呵这个设置好简单啊,但带来很多问题,比如安全性问题,ip地址显示不正确问题等都是由它而生&lt;br /&gt;&lt;br /&gt;5.再来看一个更特殊的问题，就是大家所说的路由器的回流问题,什么叫回流呢，就是当内网有服务映射到网关后,内网主机也可以用网关外部地址访问,凡是支持回流功能的路由器,都可以从内网访问网关外部地址上映射的服务,不支持回流技术的当然就不行啦&amp;nbsp;,回流是如何实现的呢,事实上也是通过snat实现的,通常的snat是为了能让内网的电脑上外网,所以在outside(外网卡)上做snat,但回流是内部主机连接内网的主机(只不过是通过网关外部地址访问)，所以必须在inside(内网卡)上做snat，这样经过内网卡的数据包先被伪装成公网或其它网段内的ip地址,然后发送到外网卡,外网卡看到源地址伪装过的ip数据包,就认为该数据包是从公网或其它网段来的,所以就通过dnat功能帮它转换目标地址,并发向处在内网的服务器(如果不进行回流,外网卡认为该数据不是从公网而来,就不会通过dnat把它转回到内网,然后丢弃数据包,内网电脑就不能访问映射在网关外部地址上的服务啦!!!),这样内网电脑就能访问被映射过的内网服务啦，下面我们举几个例子说明回流的设置:&lt;br /&gt;1.假设内网主机C192.168.2.4上的web服务(80端口)被映射到网关外部地址218.91.210.206的80端口上，内网主机A(192.168.2.8)要通过218.91.210.206来访问主机C上的web服务可以这么设置:&lt;br /&gt;ip firewall src-nat add action=nat out-interface=inside protocol=tcp dst-address=218.91.210.206/32:80 src-address=192.168.2.8/32 to-src-address=218.91.210.206&lt;br /&gt;从这里看出回流设置的特点是snat是在内网卡inside上进行的，这里会有个问题,192.168.2.8在web上留下的ip地址记录会被伪装成218.91.210.206，呵呵,如果想伪装成1.2.3.4行不行啊,也行可以这样写&lt;br /&gt;ip firewall src-nat add action=nat out-interface=inside protocol=tcp dst-address=218.91.210.206/32:80 src-address=192.168.2.8/32 to-src-address=1.2.3.4&lt;br /&gt;这样设了以后在web留下的ip记录会是1.2.3.4，呵呵奇不奇怪呀,这是一个不存在的地址,但能正常访问,哪么想留下真实的ip地址,是不是可以这样写命令呢?&lt;br /&gt;ip firewall src-nat add action=nat out-interface=inside protocol=tcp dst-address=218.91.210.206/32:80 src-address=192.168.2.8/32 to-src-address=192.168.2.8&lt;br /&gt;这是错误的,routeros不允许这么设,routeros对于snat的基本要求是伪装后的源地址和真实址不能在同一个子网内,呵呵,因此内网主机访问内网映射的服务留下的ip地址不管是什么,都不可能是原来的真实地址,也许有朋友会问,前面不是说了吗,网内主机要上公网,ip源地址必须伪装成网关外部地址218.91.210.206才能啊，为什么回流中确可以伪装成任何ip地址(本子网ip除外)呢，原来因为访问主机在内网,所以发出的任何数据包都会被网关记住,因为数据不出局域网,所以不管伪装成什么ip地址都能被网关正确传回来,这和数据传到公网上是有很大不同的哦&lt;br /&gt;为了巩固一下大家的学习,我出个题目,看看大家能否回答正确,题目是请说明下面命令的作用?&lt;br /&gt;ip firewall src-nat add action=nat out-interface=inside dst-address=218.91.210.206 src-address=192.168.2.0/24 to-src-address=1.1.1.1-2.2.2.2 to-src-port=1234-56789&lt;br /&gt;大家看懂了吗,我来说一下,该命令设置了回流,凡是从192.168.2.0/24子网发出，并发向218.91.210.206主机上任意端口的数据包源地址都被伪装成1.1.1.1-2.2.2.2这个变化范围,源端口被伪装成1234-56789这个变化范围的形式。&lt;/span&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2237319.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/11/05/2237319.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/09/2172851.html</id><title type="text">共享局域网服务器vpn拨号连接的方法</title><summary type="text">环境介绍：windows 2003可运行VPN客户端，进行加密访问外部网站。目的：与服务器同一局域网的其他计算机通过服务器VPN上网。实现方法：使用ISA 2006设置即可。</summary><published>2011-09-09T13:37:00Z</published><updated>2011-09-09T13:37:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172851.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172851.html"/><content type="html">&lt;p&gt;环境介绍：windows 2003可运行VPN客户端，进行加密访问外部网站。&lt;/p&gt;&lt;p&gt;目的：与服务器同一局域网的其他计算机通过服务器VPN上网。&lt;/p&gt;&lt;p&gt;实现方法：使用ISA 2006设置即可。&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2172851.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172851.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/09/2172847.html</id><title type="text">想自己通过家里电脑架设服务器的同学注意了</title><summary type="text">本人使用长城宽带，虽然分配的是独立IP，但是外网只能ping 通该IP，无法访问主机提供的服务，无法架设服务器。在网上搜索发现还有一些ADSL宽带也存在外网不能访问的情况，或者压根就没分配独立IP。从结果来看，还是电信独立IP多啊，准备换电信了。一般来说使用联通ADSL和电信ADSL支持花生壳架设的应用。铁通在内部做了NAT，通过花生壳商业服务的线路选择后部分地区支持。本文中花生客将各地的网络情况进行汇总，随时保持更新。尽可能避免用户不必要的测试与时间浪费。电信网络（ADSL）：江浙沪：外网IP正常，80正常，互通正常。广东，福建，广西，海南：外网IP正常，封80，互通正常。东北三省：外网IP</summary><published>2011-09-09T13:33:00Z</published><updated>2011-09-09T13:33:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172847.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172847.html"/><content type="html">&lt;p&gt;本人使用长城宽带，虽然分配的是独立IP，但是外网只能ping 通该IP，无法访问主机提供的服务，无法架设服务器。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;在网上搜索发现还有一些ADSL宽带也存在外网不能访问的情况，或者压根就没分配独立IP。从结果来看，还是电信独立IP多啊，准备换电信了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span  style="color: #454545; font-family: Arial, 'Trebuchet MS', Tahoma, sans-serif; font-size: 13px; line-height: 20px; background-color: #ffffff; "&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;一般来说使用联通ADSL和电信ADSL支持花生壳架设的应用。铁通在内部做了NAT，通过花生壳商业服务的线路选择后部分地区支持。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;本文中花生客将各地的网络情况进行汇总，随时保持更新。尽可能避免用户不必要的测试与时间浪费。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;电信网络（ADSL）：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;江浙沪：外网IP正常，80正常，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;广东，福建，广西，海南：外网IP正常，封80，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;东北三省：外网IP正常，封80，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;安徽：异常，外网IP正常，全封，互通异常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;联通网络（ADSL）：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;北京，天津，河北，山西，内蒙古，山东：外网IP正常，封80，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;东北三省：外网IP正常，封80，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;铁通网络：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;东北，华北地区，华东地区：外网IP正常，封80，互通正常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;华南地区，西部地区：外网IP正常，封80，互通异常，电信联通无法访问。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;广电网络：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;全国均不支持。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;艾普宽带：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;武汉地区：外网IP异常，可参见链接：&lt;a href="http://2ddns.iego.cn/ip66-not-support-ddns.html" style="color: #e0691a; "&gt;http://2ddns.iego.cn/ip66-not-support-ddns.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;其它地区未测试。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;长城宽带：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;部分地区可获得外网IP，但互通异常。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;&lt;span style="font-size: 16px; "&gt;华数宽带：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0.6em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="font-size: 16px; "&gt;杭州：外网IP正常，没封80，互通可能有问题。&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2172847.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/09/2172847.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/07/2170280.html</id><title type="text">bios rookit走向前台</title><summary type="text">新鬼影病毒主要通过假冒游戏外挂和电影播放器传播，其主要攻击目标是游戏玩家和在线看视频的网民。中毒后的主要表现是主页被锁定为www.my2345.cc，杀毒软件反复报毒（因病毒母体会下载盗号木马）。即使格式化重装，这些现象依旧不能解决。 新鬼影病毒可以改写特定型号主板BIOS，这很容易让人联想到Windows 95时代流行的CIH病毒，当时有杀毒厂商称CIH病毒可以破坏硬件。中毒后的电脑将完全黑屏，不能启动。 新鬼影病毒的目的和CIH完全不同，CIH是以破坏系统为主，而新鬼影则是以赚钱为主，不会破坏系统，中毒电脑不会出现黑屏和分区受损。其主要目的是为导航站带流量，再下载更多木马或木马下载器，推广</summary><published>2011-09-07T13:24:00Z</published><updated>2011-09-07T13:24:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/07/2170280.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/07/2170280.html"/><content type="html">&lt;p&gt;&lt;span  style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; line-height: 24px; background-color: #ffffff; "&gt;&lt;span style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; font-size: 14px; line-height: 24px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 24px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;新&lt;a href="http://www.ijinshan.com/zt/duba_ghostshadow.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;鬼影病毒&lt;/a&gt;主要通过假冒游戏外挂和电影播放器传播，其主要攻击目标是游戏玩家和在线看视频的网民。中毒后的主要表现是主页被锁定为www.my2345.cc，&lt;a href="http://www.ijinshan.com/zt/duba_smsdrjzhy.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;杀毒软件&lt;/a&gt;反复报毒（因病毒母体会下载盗号木马）。即使格式化重装，这些现象依旧不能解决。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新&lt;a href="http://www.ijinshan.com/zt/duba_ghostshadow.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;鬼影病毒&lt;/a&gt;可以改写特定型号主板BIOS，这很容易让人联想到Windows 95时代流行的CIH病毒，当时有杀毒厂商称CIH病毒可以破坏硬件。中毒后的电脑将完全黑屏，不能启动。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新鬼影病毒的目的和CIH完全不同，CIH是以破坏系统为主，而新鬼影则是以赚钱为主，不会破坏系统，中毒电脑不会出现黑屏和分区受损。其主要目的是为导航站带流量，再下载更多木马或木马下载器，推广其他病毒或软件。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新鬼影病毒先判定当前系统主板BIOS是否为Award BIOS，然后再查找SMI端口，写入新的BIOS内容，其目的是保护硬盘MBR（主引导记录）被其他程序改写。这样就造成杀毒软件或一些磁盘编辑工具无法查看或编辑硬盘MBR信息，从而使病毒难以清除。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://www.ijinshan.com/news/attachment/image/3a2f31343301771e3c21e5c908cdda53.jpg" alt="" width="550" height="305" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: block; margin-left: auto; margin-right: auto; " /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 图1 新鬼影病毒改写BIOS的代码&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&amp;#8220;从这个病毒的源代码分析，其字符串加密手法和以前的鬼影病毒有很多相似之处，分析师初步判断该病毒和老鬼影病毒是一个团伙所为。&amp;#8221;9月1日，两高院司法解释强化了对病毒集团的打击力度。金山安全专家指出，&amp;#8220;这些作恶的病毒集团终将受到法律严惩。&amp;#8221;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;span  style="font-family: 宋体, Arial, Helvetica, sans-serif; line-height: 24px; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;360和 金山都给出了分析&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; line-height: 24px; background-color: #ffffff; "&gt;&lt;span style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; font-size: 14px; line-height: 24px; "&gt;BMW病毒是360安全中心最新捕获的一款高危病毒，该病毒能够连环感染BIOS（主板芯片程序）、MBR（硬盘主引导区）和Windows系统文件，使受害电脑无论重装系统、格式化硬盘，还是换掉硬盘都无法彻底清除病毒。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span  style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; line-height: 24px; background-color: #ffffff; "&gt;&lt;span style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; font-size: 14px; line-height: 24px; "&gt;&lt;br /&gt;　　&lt;strong&gt;病毒传播途径&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　捆绑游戏外挂，欺骗用户关闭安全软件后实施攻击。&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;病毒中招现象&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　一、Windows系统启动前，电脑屏幕显示"Find it OK!"字样；&lt;br /&gt;　　二、杀毒软件反复提示&amp;#8220;硬盘引导区病毒&amp;#8221;却无法彻底清除；&lt;br /&gt;　　三、浏览器主页被篡改为http://10554.new93.com/index.htm&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;病毒防治方案&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　用户电脑在正常&lt;strong&gt;开启360安全卫士&lt;/strong&gt;的情况下，能够&lt;strong&gt;防御BMW病毒&lt;/strong&gt;，使其无法感染主板BIOS芯片和硬盘MBR；&lt;br /&gt;&lt;br /&gt;　　如果有网民电脑因&lt;strong&gt;关闭安全软件而被BMW病毒感染&lt;/strong&gt;，可下载使用360&amp;#8220;BMW病毒专杀工具&amp;#8221;，能够检测病毒并阻止BIOS病毒代码回写MBR，再配合360系统急救箱进行修复，可有效防范此类病毒反复发作。下载地址：&lt;a href="http://bbs.360.cn/4005462/251088932.html" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;http://bbs.360.cn/4005462/251088932.html&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;以下为BMW病毒的技术分析&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　BMW病毒主体分为BIOS、MBR和Windows三个部分，攻击流程如下图：&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/423_239/25/02/d2/2502d2aqd26.0af893.png" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/423_239/25/02/d2/2502d2aqd26.0af893.png" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;　　&lt;strong&gt;一、BMW病毒BIOS部分&lt;/strong&gt;&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/554_386/2e/01/b4/2e01b41qd40.450d5b.png" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/554_386/2e/01/b4/2e01b41qd40.450d5b.png" width="530" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;　　增加了ISA模块BIOS部分，名为HOOK.ROM，作用主要是检测MBR部分是否被修复。如果发现MBR部分已被修复，就将BIOS内的病毒代码约14个扇区写入MBR中，导致用户反复格式化、高格低格，或重新分区都无效。&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;二、BMW病毒MBR部分&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　MBR部分病毒代码执行后，会从第2个扇区开始读6个扇区的病毒代码到0X7C00处，然后跳至该处执行，然后读取第7个扇区中的备份MBR到内存中，验证扇区的有效性；&lt;br /&gt;&lt;br /&gt;　　通过验证后，读取分区表中的引导扇区所在的扇区到0X7C00处，验证引导分区的有效性；&lt;br /&gt;&lt;br /&gt;　　通过验证后，判断引导分区的类型，目前该病毒支持NTFS和FAT32，根据不同的分区类型进行不同的处理，再经过解析文件系统找到文件所在扇区，找到相应的Windows系统文件读取PE信息判断其是否被感染过。（XP/2003系统为Winlogon.exe，Win7/Vista系统为Wininit.exe）&lt;br /&gt;&lt;br /&gt;　　如果Windows系统文件已被感染，则在屏幕上显示"Find it OK!"，然后调入原始MBR，跳到原始MBR处执行；如果Windows系统文件没有被感染，则进行PE感染写扇区，之后在屏幕上显示"Find it OK!"，然后调入原始MBR，跳到原始MBR处执行。&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/440_328/2f/01/24/2f0124bqd1d.35ac09.jpeg" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/440_328/2f/01/24/2f0124bqd1d.35ac09.jpeg" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;三、BMW病毒Windows部分（Winlogon和Wininit文件执行感染）&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　以Winlogon.exe为例进行说明：&lt;br /&gt;&lt;br /&gt;　　由于病毒修改了该文件入口点，当文件执行时首先执行加密过的病毒代码，运行时动态解码。&lt;br /&gt;&lt;br /&gt;　　病毒代码解密后加载指定文件，创建病毒调用CreateThread创建线程，同时跳回原始入口点执行。&lt;br /&gt;&lt;br /&gt;　　在病毒线程里先Sleep10秒，然后调用URLDownloadToFileA从黑客服务器下载一个Downloader到本地，验证文件下载成功后，调用WinExec执行，从而下载运行多种恶意程序；该病毒还会下载驱动，命名为c:\my.sys，由之前的病毒代码通过一系列服务函数来创建加载驱动，完成后该病毒线程进入无限Sleep状态。&lt;/span&gt;BMW病毒是360安全中心最新捕获的一款高危病毒，该病毒能够连环感染BIOS（主板芯片程序）、MBR（硬盘主引导区）和Windows系统文件，使受害电脑无论重装系统、格式化硬盘，还是换掉硬盘都无法彻底清除病毒。&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;病毒传播途径&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　捆绑游戏外挂，欺骗用户关闭安全软件后实施攻击。&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;病毒中招现象&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　一、Windows系统启动前，电脑屏幕显示"Find it OK!"字样；&lt;br /&gt;　　二、杀毒软件反复提示&amp;#8220;硬盘引导区病毒&amp;#8221;却无法彻底清除；&lt;br /&gt;　　三、浏览器主页被篡改为http://10554.new93.com/index.htm&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;病毒防治方案&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　用户电脑在正常&lt;strong&gt;&lt;font color="#008000"&gt;开启360安全卫士&lt;/font&gt;&lt;/strong&gt;的情况下，能够&lt;strong&gt;&lt;font color="#008000"&gt;防御BMW病毒&lt;/font&gt;&lt;/strong&gt;，使其无法感染主板BIOS芯片和硬盘MBR；&lt;br /&gt;&lt;br /&gt;　　如果有网民电脑因&lt;strong&gt;&lt;font color="#ff0000"&gt;关闭安全软件而被BMW病毒感染&lt;/font&gt;&lt;/strong&gt;，可下载使用360&amp;#8220;BMW病毒专杀工具&amp;#8221;，能够检测病毒并阻止BIOS病毒代码回写MBR，再配合360系统急救箱进行修复，可有效防范此类病毒反复发作。下载地址：&lt;a href="http://bbs.360.cn/4005462/251088932.html" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;http://bbs.360.cn/4005462/251088932.html&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;以下为BMW病毒的技术分析&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　BMW病毒主体分为BIOS、MBR和Windows三个部分，攻击流程如下图：&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/423_239/25/02/d2/2502d2aqd26.0af893.png" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/423_239/25/02/d2/2502d2aqd26.0af893.png" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;　　&lt;strong&gt;一、BMW病毒BIOS部分&lt;/strong&gt;&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/554_386/2e/01/b4/2e01b41qd40.450d5b.png" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/554_386/2e/01/b4/2e01b41qd40.450d5b.png" width="530" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;　　增加了ISA模块BIOS部分，名为HOOK.ROM，作用主要是检测MBR部分是否被修复。如果发现MBR部分已被修复，就将BIOS内的病毒代码约14个扇区写入MBR中，导致用户反复格式化、高格低格，或重新分区都无效。&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;二、BMW病毒MBR部分&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　MBR部分病毒代码执行后，会从第2个扇区开始读6个扇区的病毒代码到0X7C00处，然后跳至该处执行，然后读取第7个扇区中的备份MBR到内存中，验证扇区的有效性；&lt;br /&gt;&lt;br /&gt;　　通过验证后，读取分区表中的引导扇区所在的扇区到0X7C00处，验证引导分区的有效性；&lt;br /&gt;&lt;br /&gt;　　通过验证后，判断引导分区的类型，目前该病毒支持NTFS和FAT32，根据不同的分区类型进行不同的处理，再经过解析文件系统找到文件所在扇区，找到相应的Windows系统文件读取PE信息判断其是否被感染过。（XP/2003系统为Winlogon.exe，Win7/Vista系统为Wininit.exe）&lt;br /&gt;&lt;br /&gt;　　如果Windows系统文件已被感染，则在屏幕上显示"Find it OK!"，然后调入原始MBR，跳到原始MBR处执行；如果Windows系统文件没有被感染，则进行PE感染写扇区，之后在屏幕上显示"Find it OK!"，然后调入原始MBR，跳到原始MBR处执行。&lt;br /&gt;　　&lt;div align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://t1.qhimg.com/qhimg/jingyan/440_328/2f/01/24/2f0124bqd1d.35ac09.jpeg" target="_blank" style="color: #008000; text-decoration: none; cursor: pointer; "&gt;&lt;img src="http://t1.qhimg.com/qhimg/jingyan/440_328/2f/01/24/2f0124bqd1d.35ac09.jpeg" style="border-width: initial; border-color: initial; vertical-align: top; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;　　&lt;strong&gt;三、BMW病毒Windows部分（Winlogon和Wininit文件执行感染）&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;　　以Winlogon.exe为例进行说明：&lt;br /&gt;&lt;br /&gt;　　由于病毒修改了该文件入口点，当文件执行时首先执行加密过的病毒代码，运行时动态解码。&lt;br /&gt;&lt;br /&gt;　　病毒代码解密后加载指定文件，创建病毒调用CreateThread创建线程，同时跳回原始入口点执行。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span  style="font-family: Tahoma, Helvetica, Arial, '5b8b4f53', sans-serif; line-height: 24px; background-color: #ffffff; "&gt;　　在病毒线程里先Sleep10秒，然后调用URLDownloadToFileA从黑客服务器下载一个Downloader到本地，验证文件下载成功后，调用WinExec执行，从而下载运行多种恶意程序；该病毒还会下载驱动，命名为c:\my.sys，由之前的病毒代码通过一系列服务函数来创建加载驱动，完成后该病毒线程进入无限Sleep状态。&lt;div style="display: inline-block; "&gt;&lt;/div&gt;&lt;/span&gt;&lt;span  style="font-family: 宋体, Arial, Helvetica, sans-serif; line-height: 24px; background-color: #ffffff; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;新&lt;a href="http://www.ijinshan.com/zt/duba_ghostshadow.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;鬼影病毒&lt;/a&gt;主要通过假冒游戏外挂和电影播放器传播，其主要攻击目标是游戏玩家和在线看视频的网民。中毒后的主要表现是主页被锁定为www.my2345.cc，&lt;a href="http://www.ijinshan.com/zt/duba_smsdrjzhy.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;杀毒软件&lt;/a&gt;反复报毒（因病毒母体会下载盗号木马）。即使格式化重装，这些现象依旧不能解决。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新&lt;a href="http://www.ijinshan.com/zt/duba_ghostshadow.shtml" target="_blank" style="color: #1667a9; text-decoration: none; "&gt;鬼影病毒&lt;/a&gt;可以改写特定型号主板BIOS，这很容易让人联想到Windows 95时代流行的CIH病毒，当时有杀毒厂商称CIH病毒可以破坏硬件。中毒后的电脑将完全黑屏，不能启动。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新鬼影病毒的目的和CIH完全不同，CIH是以破坏系统为主，而新鬼影则是以赚钱为主，不会破坏系统，中毒电脑不会出现黑屏和分区受损。其主要目的是为导航站带流量，再下载更多木马或木马下载器，推广其他病毒或软件。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新鬼影病毒先判定当前系统主板BIOS是否为Award BIOS，然后再查找SMI端口，写入新的BIOS内容，其目的是保护硬盘MBR（主引导记录）被其他程序改写。这样就造成杀毒软件或一些磁盘编辑工具无法查看或编辑硬盘MBR信息，从而使病毒难以清除。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center; "&gt;&lt;img src="http://www.ijinshan.com/news/attachment/image/3a2f31343301771e3c21e5c908cdda53.jpg" alt="" width="550" height="305" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: block; margin-left: auto; margin-right: auto; " /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 图1 新鬼影病毒改写BIOS的代码&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&amp;#8220;从这个病毒的源代码分析，其字符串加密手法和以前的鬼影病毒有很多相似之处，分析师初步判断该病毒和老鬼影病毒是一个团伙所为。&amp;#8221;9月1日，两高院司法解释强化了对病毒集团的打击力度。金山安全专家指出，&amp;#8220;这些作恶的病毒集团终将受到法律严惩。&amp;#8221;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 金山毒霸2012内置的K+行为防御可以完美保护安装了金山毒霸的电脑，当新鬼影病毒释放程序、改写硬盘的操作均可被拦截。未安装金山毒霸的用户若已经中招，可以下载鬼影病毒专杀来解决，点击下载鬼影专杀。&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2170280.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/07/2170280.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/04/2166143.html</id><title type="text">android中调用.net web service</title><summary type="text">package com.android;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapPrimitive;import org..</summary><published>2011-09-04T05:31:00Z</published><updated>2011-09-04T05:31:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166143.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166143.html"/><content type="html">&#xD;
 &#xD;
package com.&lt;span &gt;android&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.Hash&lt;span &gt;Map&lt;/span&gt;;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.Map;&lt;br /&gt;import java.util.Map.Entry;&lt;br /&gt;&lt;br /&gt;import org.ksoap2.SoapEnvelope;&lt;br /&gt;import org.ksoap2.serialization.SoapObject;&lt;br /&gt;import org.ksoap2.serialization.SoapPrimitive;&lt;br /&gt;import org.ksoap2.serialization.SoapSerializationEnvelope;&lt;br /&gt;import org.ksoap2.transport.AndroidHttpTransport;&lt;br /&gt;&lt;br /&gt;import android.&lt;span &gt;app&lt;/span&gt;.Activity;&lt;br /&gt;import android.app.ProgressDialog;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import android.os.Handler;&lt;br /&gt;import android.os.Message;&lt;br /&gt;import android.view.&lt;span &gt;View&lt;/span&gt;;&lt;br /&gt;import android.view.View.OnClickListener;&lt;br /&gt;import android.widget.Button;&lt;br /&gt;import android.widget.EditText;&lt;br /&gt;import android.widget.&lt;span &gt;ListView&lt;/span&gt;;&lt;br /&gt;import android.widget.SimpleAdapter;&lt;br /&gt;&lt;br /&gt;public class MainActivity extends Activity {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //显示结果的listview&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListView listView=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //输入文本框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EditText provinceEdit=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //用于存放&lt;span &gt;数据&lt;/span&gt;的集合list&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Map&amp;lt;String, Object&amp;gt;&amp;gt; data=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //提示对话框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgressDialog myDialog=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //搜索按钮&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button searchButton=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** Called when the &lt;span &gt;activity&lt;/span&gt; is first created. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(R.layout.main);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //获得文本输入框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; provinceEdit=(EditText) this.findViewById(R.id.provinceEdit);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //获得搜索按钮&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; searchButton=(Button) this.findViewById(R.id.searchButton);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //为搜索按钮添加单击监听事件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; searchButton.setOnClickListener(new OnClickListener(){&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onClick(View v) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //响应按钮单击事件的函数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResponseOnClick();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //响应按钮单击事件的函数&lt;br /&gt;&amp;nbsp;&amp;nbsp; public&amp;nbsp; void&amp;nbsp; ResponseOnClick(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //创建一个线程&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpThread thread=new HttpThread(handler);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //构造请求参数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap &amp;lt;String ,Object&amp;gt; params=new HashMap&amp;lt;String ,Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CharSequence etValue=provinceEdit.getText();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String name="";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(etValue!=null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //字符转码&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name=new String(etValue.toString().getBytes(),"UTF-8");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params.put("byProvinceName", name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception ex){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String url="http://webservice.webxml.com.cn/Web&lt;span &gt;Service&lt;/span&gt;s/WeatherWebService.asmx";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // String url = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx";&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nameSpace = "http://WebXml.com.cn/";&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String methodName = "getSupportCity";&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 开始新线程进行WebService请求&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thread.doStart(url, nameSpace, methodName, params);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 捕获消息队列&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp; Handler handler=new Handler(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void handleMessage(Message m){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayList &amp;lt;String&amp;gt; myList=(ArrayList&amp;lt;String&amp;gt;)m.getData().getStringArrayList("data");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(myList !=null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(data !=null){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.clear();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data=new ArrayList&amp;lt;Map &amp;lt;String, Object&amp;gt;&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i=0;i&amp;lt;myList.size();i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; item=new HashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item.put("text", myList.get(i));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.add(item);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 列表显示&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleAdapter simpleAdapter=new SimpleAdapter(MainActivity.this&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,data,R.layout.listlayout,new String[] {"text"},new int []{R.id.showData});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listView=(ListView) findViewById(R.id.showListView);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; listView.setAdapter(simpleAdapter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp; * 线程类&lt;br /&gt;&amp;nbsp;&amp;nbsp; * @author Administrator&lt;br /&gt;&amp;nbsp;&amp;nbsp; *&lt;br /&gt;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; public class HttpThread extends Thread{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Handler handle=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String url=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nameSpace=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String methodName=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap &amp;lt;String ,Object&amp;gt; params=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ProgressDialog progressDialog=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //构造函数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public HttpThread(Handler hander){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handle=hander;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 启动线程&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void doStart(String url, String nameSpace, String methodName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap&amp;lt;String, Object&amp;gt; params) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated method stub&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.url=url;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nameSpace=nameSpace;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.methodName=methodName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.params=params;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; progressDialog=ProgressDialog.show(MainActivity.this, "提示","正在请求请稍等......", true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.start();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 线程&lt;span &gt;运行&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated method stub&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("jack");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.run();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //web service请求&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapObject result=(SoapObject) CallWebService();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //构造数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayList&amp;lt;String&amp;gt; list=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(result !=null &amp;amp;&amp;amp; result.getPropertyCount() &amp;gt; 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list=new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i=0;i&amp;lt;result.getPropertyCount();i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapPrimitive value=(SoapPrimitive) result.getProperty(i);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list.add(value.toString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //a取消进度对话框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; progressDialog.dismiss();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //构造消息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Message message=handle.obtainMessage();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bundle b=new Bundle();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.putStringArrayList("data", list);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message.setData(b);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handle.sendMessage(message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception ex){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }finally{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 请求web service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected Object CallWebService(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String SOAP_ACTION = nameSpace + methodName; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //创建SoapObject&lt;span &gt;实例&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapObject request=new SoapObject(nameSpace,methodName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //生成调用web service方法的soap请求消息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;span &gt;设置&lt;/span&gt;.net web service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; envelope.dotNet=true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //发送请求&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; envelope.setOutputSoapObject(request);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //请求参数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(params != null &amp;amp;&amp;amp; !params.isEmpty() ){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Iterator it=params.entrySet().iterator();it.hasNext();){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map.Entry e=(Entry) it.next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.addProperty(e.getKey().toString(),e.getValue());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AndroidHttpTransport androidHttpTrandsport=new AndroidHttpTransport(url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapObject result=null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //web service请求&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; androidHttpTrandsport.call(SOAP_ACTION, envelope);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //得到返回结果&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result=(SoapObject) envelope.getResponse();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception ex){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;img src="http://www.cnblogs.com/jecray/aggbug/2166143.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166143.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/04/2166140.html</id><title type="text">Consuming C# web service with android application</title><summary type="text">IntroductionAs many of you know, Web Services are a great way to establish communication between distant and independent platforms.With .NET technology everyone can build .NET Web services with easy step and less code. It its very easy consuming .NET web service with any application with .NET Frame.</summary><published>2011-09-04T05:27:00Z</published><updated>2011-09-04T05:27:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166140.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166140.html"/><content type="html">&#xD;
 &#xD;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;As many of you know, Web Services are a great way to establish communication between distant and independent platforms.&lt;br /&gt;With .NET technology everyone can build .NET Web services with easy step&amp;nbsp; and less code. It its very easy consuming .NET web service with any&amp;nbsp; application with .NET Framework system. In this tutorial we use android&amp;nbsp; to consume .NET web service, with android java application. First thing&amp;nbsp; we need library in java environment to call web service. Ksoap2 will&amp;nbsp; provide this facility with open source way.&lt;br /&gt;you can download&amp;nbsp; Ksoap2 &lt;a href="http://code.google.com/p/ksoap2-android"&gt;&lt;font color="#be0404"&gt; here &lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In this article demonstrate how to create simple list view in android using value that we get&amp;nbsp; from web service.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Using the code&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Create .NET web service&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;In .NET web service we create simple web method that return array value of client name. the code is like this:&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div &gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td &gt;&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
4&#xD;
5&#xD;
6&#xD;
7&#xD;
8&#xD;
9&#xD;
10&#xD;
11&#xD;
12&#xD;
13&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;td &gt;&lt;pre style="font-family: monospace;" &gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;WebMethod&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; GetClient&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Number&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 51, 153);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; Clients &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;if &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Number&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;gt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&amp;amp;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Number&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;lt&lt;span style="color: rgb(51, 153, 51);"&gt;;=&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
Clients &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?q=new+msdn.microsoft.com"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;new&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 51, 153);"&gt;Number&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; i &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;amp&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;lt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(0, 51, 153);"&gt;Number&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; i&lt;span style="color: rgb(51, 153, 51);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
Clients&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"Client: "&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;+&lt;/span&gt; i.&lt;span style="color: rgb(0, 102, 51);"&gt;ToString&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; Clients&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Create Android application&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://codename007.co.cc/wp-content/uploads/2011/04/addllibrary.jpg"&gt;&lt;a href="http://www.ferrassi.com/wp-content/uploads/2011/08/android-addllibrary.jpg"&gt;&lt;img  title="android-add library" alt="Android - add library" src="http://www.ferrassi.com/wp-content/uploads/2011/08/android-addllibrary-300x265.jpg" width="300" height="265" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Create new android project and insert library Ksoap2 in your project&amp;nbsp; properties. Then in folder res/layout/main.xml edit main layout, the&amp;nbsp; code should be like this:&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div &gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td &gt;&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
4&#xD;
5&#xD;
6&#xD;
7&#xD;
8&#xD;
9&#xD;
10&#xD;
11&#xD;
12&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;td &gt;&lt;pre style="font-family: monospace;" &gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;LinearLayout&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:orientation&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"vertical"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;TextView&lt;/span&gt;  &lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"wrap_content"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:text&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"@string/hello"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/LinearLayout&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Create new xml file named list_item.xml in folder res/layout to define layout list item in your application.&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div &gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td &gt;&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
4&#xD;
5&#xD;
6&#xD;
7&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;td &gt;&lt;pre style="font-family: monospace;" &gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;version&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"1.0"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;encoding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"utf-8"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;TextView&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102);"&gt;xmlns:android&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_width&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:layout_height&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"fill_parent"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:padding&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"20dp"&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;   &lt;span style="color: rgb(0, 0, 102);"&gt;android:textSize&lt;/span&gt;=&lt;span style="color: rgb(255, 0, 0);"&gt;"16sp"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;lt;/TextView&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;And the last thing is editing file .java in your project in folder src/&lt;em&gt;yourpackagename&lt;/em&gt;/&lt;em&gt;yourjavaclass&lt;/em&gt;.java And this is my full code:&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div &gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td &gt;&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
4&#xD;
5&#xD;
6&#xD;
7&#xD;
8&#xD;
9&#xD;
10&#xD;
11&#xD;
12&#xD;
13&#xD;
14&#xD;
15&#xD;
16&#xD;
17&#xD;
18&#xD;
19&#xD;
20&#xD;
21&#xD;
22&#xD;
23&#xD;
24&#xD;
25&#xD;
26&#xD;
27&#xD;
28&#xD;
29&#xD;
30&#xD;
31&#xD;
32&#xD;
33&#xD;
34&#xD;
35&#xD;
36&#xD;
37&#xD;
38&#xD;
39&#xD;
40&#xD;
41&#xD;
42&#xD;
43&#xD;
44&#xD;
45&#xD;
46&#xD;
47&#xD;
48&#xD;
49&#xD;
50&#xD;
51&#xD;
52&#xD;
53&#xD;
54&#xD;
55&#xD;
56&#xD;
57&#xD;
58&#xD;
59&#xD;
60&#xD;
61&#xD;
62&#xD;
63&#xD;
64&#xD;
65&#xD;
66&#xD;
67&#xD;
68&#xD;
69&#xD;
70&#xD;
71&#xD;
72&#xD;
73&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;td &gt;&lt;pre style="font-family: monospace;" &gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;package&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;com.latihan.layout.listview&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.app.ListActivity&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.os.Bundle&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.view.View&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.AdapterView&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.ArrayAdapter&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.ListView&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.TextView&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.Toast&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;android.widget.AdapterView.OnItemClickListener&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;import &lt;span style="color: rgb(0, 102, 153);"&gt;org.ksoap2.SoapEnvelope&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;org.ksoap2.serialization.SoapObject&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;org.ksoap2.serialization.SoapSerializationEnvelope&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(0, 102, 153);"&gt;org.ksoap2.transport.HttpTransportSE&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
 &#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt; displaylist &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;extends&lt;/span&gt; ListActivity &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 128, 0); font-style: italic; font-weight: bold;"&gt;/** Called when the activity is first created. */&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;final&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; SOAP_ACTION &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &amp;#8220;http&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//tempuri.org/GetClient&amp;#8221;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;final&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; METHOD_NAME &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &amp;#8220;GetClient&amp;#8221;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;final&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; NAMESPACE &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &amp;#8220;http&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//tempuri.org/&amp;#8221;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;final&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aurl+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;URL&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &amp;#8220;http&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//10.0.2.2/wshello/Service.asmx&amp;#8221;;&lt;/span&gt;&#xD;
TextView tv&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
 &#xD;
@Override&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; onCreate&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;Bundle savedInstanceState&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;super&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;onCreate&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;savedInstanceState&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//Call function web service&lt;/span&gt;&#xD;
&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; countries3 &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; call&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//Create list view&lt;/span&gt;&#xD;
setListAdapter&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; ArrayAdapter&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;lt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;gt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;this&lt;/span&gt;, R.&lt;span style="color: rgb(0, 102, 51);"&gt;layout&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;list_item&lt;/span&gt;, countries3&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Alistview+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;ListView&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; lv &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; getListView&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
lv.&lt;span style="color: rgb(0, 102, 51);"&gt;setTextFilterEnabled&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
 &#xD;
lv.&lt;span style="color: rgb(0, 102, 51);"&gt;setOnItemClickListener&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; OnItemClickListener&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;void&lt;/span&gt; onItemClick&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;AdapterView&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;lt&lt;span style="color: rgb(51, 153, 51);"&gt;;?&amp;amp;&lt;/span&gt;gt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; parent, &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aview+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;View&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; view, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; position, &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;long&lt;/span&gt; id&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// When clicked, show a toast with the TextView text&lt;/span&gt;&#xD;
Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;getApplicationContext&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;, &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;TextView&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; view&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;getText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;,&#xD;
Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;LENGTH_SHORT&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
 &#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; call&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; ret &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
SoapObject request &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; SoapObject&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;NAMESPACE, METHOD_NAME&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// Send parameter to web service&lt;/span&gt;&#xD;
request.&lt;span style="color: rgb(0, 102, 51);"&gt;addProperty&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&amp;#8220;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Anumber+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;Number&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&amp;#8221;, &lt;span style="color: rgb(204, 102, 204);"&gt;6&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// Create envelope&lt;/span&gt;&#xD;
SoapSerializationEnvelope envelope &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; SoapSerializationEnvelope&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;SoapEnvelope.&lt;span style="color: rgb(0, 102, 51);"&gt;VER11&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
envelope.&lt;span style="color: rgb(0, 102, 51);"&gt;dotNet&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
envelope.&lt;span style="color: rgb(0, 102, 51);"&gt;setOutputSoapObject&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;request&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// Call web service&lt;/span&gt;&#xD;
HttpTransportSE androidHttpTransport &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; HttpTransportSE&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aurl+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;URL&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
androidHttpTransport.&lt;span style="color: rgb(0, 102, 51);"&gt;call&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;SOAP_ACTION, envelope&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// Retrieve response object&lt;/span&gt;&#xD;
&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aobject+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;Object&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; o &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aobject+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;Object&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;envelope.&lt;span style="color: rgb(0, 102, 51);"&gt;getResponse&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// it&amp;#8217;s SoapObject only for arrays&lt;/span&gt;&#xD;
SoapObject obj &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;SoapObject&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;o&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;// Collect object and store in array variable&lt;/span&gt;&#xD;
ret &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Astring+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;obj.&lt;span style="color: rgb(0, 102, 51);"&gt;getPropertyCount&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;int&lt;/span&gt; i &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; i &lt;span style="color: rgb(51, 153, 51);"&gt;&amp;amp;&lt;/span&gt;lt&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; ret.&lt;span style="color: rgb(0, 102, 51);"&gt;length&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt; i&lt;span style="color: rgb(51, 153, 51);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
ret&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; obj.&lt;span style="color: rgb(0, 102, 51);"&gt;getProperty&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;toString&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
 &#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;catch&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;&lt;/span&gt;a href&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"http://www.google.com/search?hl=en&amp;amp;amp;q=allinurl%3Aexception+java.sun.com&amp;amp;amp;btnI=I%27m%20Feeling%20Lucky"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt;Exception&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;lt;/&lt;/span&gt;a&lt;span style="color: rgb(51, 153, 51);"&gt;&amp;gt;&lt;/span&gt; e&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&#xD;
Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;makeText&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;getApplicationContext&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;, e.&lt;span style="color: rgb(0, 102, 51);"&gt;getMessage&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;, Toast.&lt;span style="color: rgb(0, 102, 51);"&gt;LENGTH_LONG&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 102, 51);"&gt;show&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; ret&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&#xD;
&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.ferrassi.com/wp-content/uploads/2011/08/Android-listclient.jpg"&gt;&lt;img  title="Android - list client" alt="Android list client" src="http://www.ferrassi.com/wp-content/uploads/2011/08/Android-listclient-300x213.jpg" width="300" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2166140.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166140.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/04/2166133.html</id><title type="text">android 利用ksoap2方式连接webservice 转载</title><summary type="text">下面例子改自网上例子：http://express.ruanko.com/ruanko-express_34/technologyexchange5.html不过网上这个例子有些没有说明，有些情况不一样了，所以我重新写了。 一、获取并使用KSOAP包在Android SDK中并没有提供调用WebService的库，因此，需要使用第三方的SDK来调用WebService。PC版本的WebService库非常丰富，但这些对Android来说过于庞大。适合手机的WebService客户端的SDK有一些，比较常用的是KSOAP2。KSOAP2 地址：http://code.google.com/p/k</summary><published>2011-09-04T05:13:00Z</published><updated>2011-09-04T05:13:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166133.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166133.html"/><content type="html">&lt;div&gt;下面例子改自网上例子：&lt;a href="http://express.ruanko.com/ruanko-express_34/technologyexchange5.html"&gt;&lt;font color="#1848b5"&gt;http://express.ruanko.com/ruanko-express_34/technologyexchange5.html&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;不过网上这个例子有些没有说明，有些情况不一样了，所以我重新写了。 &lt;/div&gt;&lt;br /&gt;&lt;div&gt;一、获取并使用KSOAP包&lt;/div&gt;&lt;br /&gt;&lt;div&gt;在Android &lt;br /&gt;SDK中并没有提供调用WebService的库，因此，需要使用第三方的SDK来调用WebService。PC版本的WebService库非常丰富，但这些对Android来说过于庞大。适合手机的WebService客户端的SDK有一些，比较常用的是KSOAP2。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;KSOAP2 地址：&lt;a href="http://code.google.com/p/ksoap2-android/"&gt;&lt;font color="#1848b5"&gt;http://code.google.com/p/ksoap2-android/&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;我下载的最新的是： ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar&lt;/div&gt;&lt;br /&gt;&lt;div&gt;注意：&lt;/div&gt;&lt;br /&gt;&lt;div&gt;我在使用ksoap2-android时犯了一个低级错误：使用时报错误：The import org.ksoap2 cannot be &lt;br /&gt;resolved。 &lt;br /&gt;当时分析这个问题时一直以为是Eclipse出了问题，找了好多方法都不行， &lt;br /&gt;&lt;br /&gt;实际是我下载的ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar文件是错误的导致的，走了弯路。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;在 &lt;a href="http://code.google.com/p/ksoap2-android/wiki/HowToUse?tm=2"&gt;&lt;font color="#1848b5"&gt;http://code.google.com/p/ksoap2-android/wiki/HowToUse?tm=2&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;页面 通过鼠标右键链接另存为存的是同名的一个纯文本的Html文件。而不是我们想要的。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;我是在 &lt;br /&gt;&lt;a href="http://code.google.com/p/ksoap2-android/source/browse/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/2.5.4/ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar"&gt;&lt;font color="#1848b5"&gt;http://code.google.com/p/ksoap2-android/source/browse/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/2.5.4/ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar&lt;/font&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;点 View raw file 才正确下载对应文件的。&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;选择我们的项目，右键菜单中 Build Path &amp;#8211;&amp;gt; Add External Archives&amp;#8230; 增加这个下载的包&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;增加好后，我们在 选择我们的项目，右键菜单中 Build Path &amp;#8211;&amp;gt; Configure Build Path 的 Libraries &lt;br /&gt;中可以看到下面图：&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;二，分以下几步来调用 WebService&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;1、指定 WebService 的命名空间和调用方法&lt;/div&gt;&lt;br /&gt;&lt;div&gt;import org.ksoap2.serialization.SoapObject;&lt;br /&gt;private static final String &lt;br /&gt;NAMESPACE = "&lt;a href="http://webxml.com.cn/"&gt;&lt;font color="#1848b5"&gt;http://WebXml.com.cn/&lt;/font&gt;&lt;/a&gt;";&lt;br /&gt;private static final &lt;br /&gt;String METHOD_NAME = "getWeatherbyCityName";&lt;/div&gt;&lt;br /&gt;&lt;div&gt;SoapObject rpc = new SoapObject(NAMESPACE, &lt;br /&gt;METHOD_NAME);SoapObject类的第一个参数表示WebService的命名空间，可以从WSDL文档中找到WebService的命名空间。 &lt;br /&gt;&lt;br /&gt;第二个参数表示要调用的WebService方法名。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;2、设置调用方法的参数值，如果没有参数，可以省略，设置方法的参数值的代码如下：&lt;/div&gt;&lt;br /&gt;&lt;div&gt;rpc.addProperty("theCityName", &lt;br /&gt;"北京");要注意的是，addProperty方法的第1个参数虽然表示调用方法的参数名，但该参数值并不一定与服务端的WebService类中的方法参数名一致，只要设置参数的顺序一致即可。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;3、生成调用Webservice方法的SOAP请求信息。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;SoapSerializationEnvelope envelope = new &lt;br /&gt;SoapSerializationEnvelope(SoapEnvelope.VER11);&lt;br /&gt;envelope.bodyOut = &lt;br /&gt;rpc;&lt;br /&gt;envelope.dotNet = &lt;br /&gt;true;&lt;br /&gt;envelope.setOutputSoapObject(rpc);创建SoapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。 &lt;br /&gt;&lt;br /&gt;该版本号需要根据服务端WebService的版本号设置。 &lt;br /&gt;&lt;br /&gt;在创建SoapSerializationEnvelope对象后，不要忘了设置SOAPSoapSerializationEnvelope类的bodyOut属性， &lt;br /&gt;&lt;br /&gt;该属性的值就是在第一步创建的SoapObject对象。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;4、创建HttpTransportsSE对象。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;这里不要使用 AndroidHttpTransport ht = new AndroidHttpTransport(URL); &lt;br /&gt;这是一个要过期的类&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private static String URL = "&lt;a href="http://www.webxml.com.cn/webservices/weatherwebservice.asmx"&gt;&lt;font color="#1848b5"&gt;http://www.webxml.com.cn/webservices/weatherwebservice.asmx&lt;/font&gt;&lt;/a&gt;";&lt;br /&gt;HttpTransportSE &lt;br /&gt;ht = new HttpTransportSE(URL); ht.debug = true;5、使用call方法调用WebService方法&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private static String SOAP_ACTION = "&lt;a href="http://webxml.com.cn/getWeatherbyCityName"&gt;&lt;font color="#1848b5"&gt;http://WebXml.com.cn/getWeatherbyCityName&lt;/font&gt;&lt;/a&gt;";&lt;br /&gt;ht.call(SOAP_ACTION, &lt;br /&gt;envelope);网上有人说这里的call的第一个参数为null，但是经过我的测试，null是不行的。 &lt;br /&gt;&lt;br /&gt;第2个参数就是在第3步创建的SoapSerializationEnvelope对象。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;6、获得WebService方法的返回结果&lt;/div&gt;&lt;br /&gt;&lt;div&gt;有两种方法：&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1、使用getResponse方法获得返回数据。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private SoapObject detail;&lt;br /&gt;detail =(SoapObject) &lt;br /&gt;envelope.getResponse();2、使用 bodyIn 及 getProperty。&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private SoapObject detail;&lt;br /&gt;SoapObject result = &lt;br /&gt;(SoapObject)envelope.bodyIn;&lt;br /&gt;detail = (SoapObject) &lt;br /&gt;result.getProperty("getWeatherbyCityNameResult");7、 这时候执行会出错，提示没有权限访问网络&lt;/div&gt;&lt;br /&gt;&lt;div&gt;需要修改 AndroidManifest.xml 文件，赋予相应权限&lt;/div&gt;&lt;br /&gt;&lt;div&gt;简单来说就是增加下面这行配置：&lt;/div&gt;&lt;br /&gt;&lt;div&gt;完整的 AndroidManifest.xml 文件 如下：&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;注：Android 中在代码中为了调试写了system.out.print()输出项 &lt;/div&gt;&lt;br /&gt;&lt;div&gt;在菜单：Window--&amp;gt;show view--&amp;gt;other--&amp;gt;找到Android,选择Logcat 是可以看到输出的, &lt;br /&gt;&lt;br /&gt;如果你想在一个单独的窗口看到system.out.print()的输出的话，可以在logcat界面点那个绿色的&amp;#8220;+&amp;#8221;好，&lt;/div&gt;&lt;br /&gt;&lt;div&gt;在Filter name 和 By log &lt;br /&gt;tag里面均填入System.out,这样的话你就能在单独的界面查看system.out.print()的输出了！！&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;a href="http://schemas.android.com/apk/res/android"&gt;&lt;font color="#1848b5"&gt;http://schemas.android.com/apk/res/android&lt;/font&gt;&lt;/a&gt;"&lt;br /&gt; package="ghj1976.MyWeather" &lt;br /&gt;android:versionCode="1"&lt;br /&gt; android:versionName="1.0"&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; @drawable/icon" &lt;br /&gt;android:label="@string/app_name"&amp;gt;&lt;br /&gt;&amp;nbsp; .MyWeatherActivity" &lt;br /&gt;android:label="@string/app_name"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android.intent.action.MAIN" &lt;br /&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; android.intent.category.LAUNCHER" &lt;br /&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt; &lt;br /&gt; android.permission.INTERNET"&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;完整的代码如下：&lt;/div&gt;&lt;br /&gt;&lt;div&gt;package ghj1976.MyWeather;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;import java.io.UnsupportedEncodingException;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;import android.app.Activity;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import &lt;br /&gt;android.view.View;&lt;br /&gt;import android.widget.Button;&lt;br /&gt;import &lt;br /&gt;android.widget.Toast;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;import org.ksoap2.SoapEnvelope;&lt;br /&gt;import &lt;br /&gt;org.ksoap2.serialization.SoapObject;&lt;br /&gt;import &lt;br /&gt;org.ksoap2.serialization.SoapSerializationEnvelope;&lt;br /&gt;//import &lt;br /&gt;org.ksoap2.transport.AndroidHttpTransport;&lt;br /&gt;import &lt;br /&gt;org.ksoap2.transport.HttpTransportSE;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;public class MyWeatherActivity extends Activity {&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private Button okButton;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; /** Called when the activity is first created. */&lt;br /&gt; @Override&lt;br /&gt; public &lt;br /&gt;void onCreate(Bundle savedInstanceState) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; super.onCreate(savedInstanceState);&lt;br /&gt;&amp;nbsp; setContentView(R.layout.main);&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; okButton &lt;br /&gt;= (Button) &lt;br /&gt;this.findViewById(R.id.btn_Search);&lt;br /&gt;&amp;nbsp; okButton.setOnClickListener(new &lt;br /&gt;Button.OnClickListener() {&lt;br /&gt;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp; public void onClick(View v) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String city = "北京";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getWeather(city);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp; });&lt;br /&gt; }&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private static final String NAMESPACE = "&lt;a href="http://webxml.com.cn/"&gt;&lt;font color="#1848b5"&gt;http://WebXml.com.cn/&lt;/font&gt;&lt;/a&gt;";&lt;/div&gt;&lt;br /&gt;&lt;div&gt; // WebService地址&lt;br /&gt; private static String URL = "&lt;a href="http://www.webxml.com.cn/webservices/weatherwebservice.asmx"&gt;&lt;font color="#1848b5"&gt;http://www.webxml.com.cn/webservices/weatherwebservice.asmx&lt;/font&gt;&lt;/a&gt;";&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private static final String METHOD_NAME = "getWeatherbyCityName";&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private static String SOAP_ACTION = "&lt;a href="http://webxml.com.cn/getWeatherbyCityName"&gt;&lt;font color="#1848b5"&gt;http://WebXml.com.cn/getWeatherbyCityName&lt;/font&gt;&lt;/a&gt;";&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private String weatherToday;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private SoapObject detail;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; public void getWeather(String cityName) {&lt;br /&gt;&amp;nbsp; try &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println("rpc------");&lt;br /&gt;&amp;nbsp;&amp;nbsp; SoapObject rpc = new &lt;br /&gt;SoapObject(NAMESPACE, METHOD_NAME);&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println("rpc" + &lt;br /&gt;rpc);&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println("cityName is " + &lt;br /&gt;cityName);&lt;br /&gt;&amp;nbsp;&amp;nbsp; rpc.addProperty("theCityName", cityName);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; SoapSerializationEnvelope envelope = new &lt;br /&gt;SoapSerializationEnvelope(SoapEnvelope.VER11);&lt;br /&gt;&amp;nbsp;&amp;nbsp; envelope.bodyOut = &lt;br /&gt;rpc;&lt;br /&gt;&amp;nbsp;&amp;nbsp; envelope.dotNet = &lt;br /&gt;true;&lt;br /&gt;&amp;nbsp;&amp;nbsp; envelope.setOutputSoapObject(rpc);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; HttpTransportSE ht = &lt;br /&gt;new HttpTransportSE(URL);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; //AndroidHttpTransport ht = new &lt;br /&gt;AndroidHttpTransport(URL);&lt;br /&gt;&amp;nbsp;&amp;nbsp; ht.debug = true;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; ht.call(SOAP_ACTION, envelope);&lt;br /&gt;&amp;nbsp;&amp;nbsp; //ht.call(null, envelope);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; //SoapObject result = (SoapObject)envelope.bodyIn;&lt;br /&gt;&amp;nbsp;&amp;nbsp; //detail = &lt;br /&gt;(SoapObject) result.getProperty("getWeatherbyCityNameResult");&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; detail =(SoapObject) &lt;br /&gt;envelope.getResponse();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; //System.out.println("result" + &lt;br /&gt;result);&lt;br /&gt;&amp;nbsp;&amp;nbsp; System.out.println("detail" + detail);&lt;br /&gt;&amp;nbsp;&amp;nbsp; Toast.makeText(this, &lt;br /&gt;detail.toString(), Toast.LENGTH_LONG).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp; parseWeather(detail);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp; } catch (Exception e) &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt; }&lt;/div&gt;&lt;br /&gt;&lt;div&gt; private void parseWeather(SoapObject detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp; throws &lt;br /&gt;UnsupportedEncodingException {&lt;br /&gt;&amp;nbsp; String date = &lt;br /&gt;detail.getProperty(6).toString();&lt;br /&gt;&amp;nbsp; weatherToday = "今天：" + date.split(" &lt;br /&gt;")[0];&lt;br /&gt;&amp;nbsp; weatherToday = weatherToday + "\n天气：" + date.split(" &lt;br /&gt;")[1];&lt;br /&gt;&amp;nbsp; weatherToday = weatherToday + "\n气温："&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &lt;br /&gt;detail.getProperty(5).toString();&lt;br /&gt;&amp;nbsp; weatherToday = weatherToday + &lt;br /&gt;"\n风力："&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + detail.getProperty(7).toString() + &lt;br /&gt;"\n";&lt;br /&gt;&amp;nbsp; System.out.println("weatherToday is " + &lt;br /&gt;weatherToday);&lt;br /&gt;&amp;nbsp; Toast.makeText(this, weatherToday, &lt;br /&gt;Toast.LENGTH_LONG).show();&lt;/div&gt;&lt;br /&gt;&lt;div&gt; }&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;参考资料&lt;/div&gt;&lt;br /&gt;&lt;div&gt;在Android中访问WebService接口 &lt;br /&gt;&lt;a href="http://www.cnblogs.com/yy-7years/archive/2011/01/24/1943286.html"&gt;&lt;font color="#1848b5"&gt;http://www.cnblogs.com/yy-7years/archive/2011/01/24/1943286.html&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Android调用WebService &lt;br /&gt;&lt;a href="http://express.ruanko.com/ruanko-express_34/technologyexchange5.html"&gt;&lt;font color="#1848b5"&gt;http://express.ruanko.com/ruanko-express_34/technologyexchange5.html&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;中国气象局的WebService地址 &lt;br /&gt;&lt;a href="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx"&gt;&lt;font color="#1848b5"&gt;http://www.webxml.com.cn/WebServices/WeatherWebService.asmx&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Android与服务器端数据交互（基于SOAP协议整合android+webservice） &lt;br /&gt;&lt;a href="http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html"&gt;&lt;font color="#1848b5"&gt;http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/jecray/aggbug/2166133.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166133.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/09/04/2166130.html</id><title type="text">转载 android 利用ksoap2方式连接webservice</title><summary type="text">android 利用ksoap2方式连接webservice(2010-04-16 16:36:25)转载标签：androidksoap2webserviceit 分类：Android 利用J2SE的ksoap2标准，我也来做一个山寨版本的android连接webservice。因为soap封装的关系，android application在接收到数据后不能够正确的按照J2SE的标准来获取。 在运用之前，我们先要引导两个jar进入工程的buildpath 这两个jar包都可以在网上查到下载，引导完后再做一项准备工作。弄清楚已发布的webservice的地址，以及封装的方式。比如：webs...</summary><published>2011-09-04T05:07:00Z</published><updated>2011-09-04T05:07:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166130.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166130.html"/><content type="html">&#xD;
 &#xD;
android 利用ksoap2方式连接webservice(2010-04-16 16:36:25)转载标签：androidksoap2webserviceit 分类：Android &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 利用J2SE的ksoap2标准，我也来做一个山寨版本的android连接webservice。因为soap封装的关系，android application在接收到数据后不能够正确的按照J2SE的标准来获取。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在运用之前，我们先要引导两个jar进入工程的buildpath&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://dl.iteye.com/upload/attachment/254686/aeeeebfb-2997-3230-ba3e-e0922695e967.png"  alt="" /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这两个jar包都可以在网上查到下载，引导完后再做一项准备工作。弄清楚已发布的webservice的地址，以及封装的方式。比如：&lt;br /&gt;&lt;br /&gt;webservice接口：http://192.168.0.2:8080/axis2/services/Manager?wsdl&amp;nbsp; (顺便说明一下，在android当中，不能写localhost，必须写清楚PC机当前的网络IP) &lt;br /&gt;webservice封装：http://ws.apache.org/axis2&lt;br /&gt;&lt;br /&gt;都了解了过后，说明已经做好准备了。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面就介绍一下android如何获取webservice封装数据。。&lt;br /&gt;&lt;br /&gt;引入ksoap2中以封装好的类&lt;br /&gt;import org.ksoap2.SoapEnvelope;&lt;br /&gt;import org.ksoap2.serialization.SoapObject;&lt;br /&gt;import org.ksoap2.serialization.SoapSerializationEnvelope;&lt;br /&gt;import org.ksoap2.transport.AndroidHttpTransport;&lt;br /&gt;&lt;br /&gt;在类中定义webservice的接口地址以及解析方式并且定义要调用的webservice中的函数&lt;br /&gt;private static final String URL = "http://192.168.0.2:8080/axis2/services/Manager?wsdl";&lt;br /&gt;private static final String NAMESPACE = "http://ws.apache.org/axis2";&lt;br /&gt;private static final String METHOD_NAME = "GetMyFriends";&lt;br /&gt;&lt;br /&gt;这个信息我们可以在webservice中查到&lt;br /&gt;&amp;lt;xs:element name="GetMyFriends"&amp;gt;&lt;br /&gt;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;lt;xs:element minOccurs="0" name="userId" type="xs:int"/&amp;gt;&lt;br /&gt;&amp;lt;xs:element minOccurs="0" name="password" nillable="true" type="xs:string"/&amp;gt;&lt;br /&gt;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&lt;br /&gt;接下来开始做对webservice请求数据的工作，请求webservice函数以及封装要用的两个参数（userId和password）&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.addProperty("userId", "123456");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.addProperty("password", "test");&lt;br /&gt;之后我们给定义发送数据的信封的封装格式&lt;br /&gt;SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 );&lt;br /&gt;发出请求&lt;br /&gt;envelope.setOutputSoapObject(request);&lt;br /&gt;AndroidHttpTransport aht = new AndroidHttpTransport(URL);&lt;br /&gt;aht.call(null, envelope);&lt;br /&gt;&lt;br /&gt;接着就可以定义一个SoapObject类型的实例去获取我们返回来的数据&lt;br /&gt;SoapObject so = (SoapObject) envelope.bodyIn;&lt;br /&gt;这里如果是返回来的数据只有一行并且只有一个值，比如验证函数，返回boolean类型的话，操作比较简单，String getReturn= so.getProperty("return");  这个getReturn就是你要获取的值。&lt;br /&gt;但是如果返回来是多行的值的话，这个方法就不行了，我们必须对返回来的信息做一些解析。我曾试过用J2SE的标准方式来获取，但是会报错，最主要的可能是他的方式在android当中不能使用。所以在这里我用了正则表达式这种方式来进行数据的解析，我们先来看一下他返回的数据的结构是什么情况。&lt;br /&gt;GetMyFriendsResponse{return=FriendsMessage{&lt;br /&gt;permitList=anyType{nickName=我爱罗; singnature=null; userId=2; }; permitList=anyType{nickName=jack; singnature=null; userId=1004; }; permitList=anyType{nickName=admin; singnature=leo_admin; userId=1001; };};}&lt;br /&gt;简单看他很想Json结构，但是确不是。。。&lt;br /&gt;就目前的解决方式，我只是通过规律来进行了正则表达式的解析：如解析上面的内容。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //首先取得permitList（好友）的个数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String testPattern = "permitList";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int resultlength = result.length();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cresult = cresult.replace(testPattern, "");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int lastlength = (resultlength - cresult.length()) / testPattern.length();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得每个permitList中的值。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String LoginReturn="", pattern="nickName=.*?;\\s*singnature=.*?;\\s*userId=.*?;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //动态生成String 数组，存储每个好友的信息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String[] GetFinalReturn = new String[lastlength];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0;i&amp;lt;lastlength;i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoginReturn = result.replaceFirst("^.*("+pattern+").*$", "$1");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFinalReturn[i] = LoginReturn;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = result.replace(LoginReturn,"");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;这个数组里面存储的格式就是nickName=admin; singnature=leo_admin; userId=1001;&lt;br /&gt;这样以来，我们可以根据"="和";"两个符号之间做split操作就可以得到数据。&lt;br /&gt;&lt;br /&gt;好了，到此连接webservice和解析返回来的数据的工作就做完了，虽然这个方式看起来很复杂，但是目前来说，用ksoap2方式来连接webservice暂时还没有找到更有效的解决方式。。&lt;img src="http://www.cnblogs.com/jecray/aggbug/2166130.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jecray/archive/2011/09/04/2166130.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jecray/archive/2011/08/25/2153867.html</id><title type="text">【转】通过异步方式发送和接收数据(tcp异步收发数据)</title><summary type="text">服务端usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;namespaceTcpTest2{publicpartialclassForm1 : Form{boolisExit =false;</summary><published>2011-08-25T14:54:00Z</published><updated>2011-08-25T14:54:00Z</updated><author><name>jecray</name><uri>http://www.cnblogs.com/jecray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jecray/archive/2011/08/25/2153867.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jecray/archive/2011/08/25/2153867.html"/></entry></feed>
