﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-banxitan-随笔分类-Android</title><link>http://www.blogjava.net/banxitan/category/53641.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 11 Jul 2013 06:55:23 GMT</lastBuildDate><pubDate>Thu, 11 Jul 2013 06:55:23 GMT</pubDate><ttl>60</ttl><item><title>Android  Activity MainThread 中不能执行http通信解决办法</title><link>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Thu, 11 Jul 2013 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/401439.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/401439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/401439.html</trackback:ping><description><![CDATA[
 
今天在做离线文件传输时。用HTTP上传文件。程序一运行　报如下的错误<br /><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: rgb(0, 0, 0);">android.os.NetworkOnMainThreadException  </span></div><br />原因是Google从3开始，强制默认禁止UI主线程发起通信请求　<br /><br />解决办法：<strong>&nbsp;<br /><br />把通信的代码转移到子线程里去做， 比较靠谱的是new一个AyncTask，在里面做通信</strong><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有几个细节性的问题是，</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一， 一般原有通信的代码都是共通的API， 被许多个Activity调用， 一个良好的修改方法是在共通API里面new AyncTask</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二， 通信的API一般来说都是同步的， 你通信，然后画面主线程需要堵塞住，等待API的通信结果，再决定下面的业务逻辑的走向。</strong></p><p><strong>所以，这块可以采取 AyncTask.get()， 让主线程堵塞，直到通信结束。 当然，如果你需要将通信异步的话， 可以用Handler机制来解决<br /><br /><br />具体调用代码如下：HTTP异</strong></p><strong><p>步请求<br /><br /></p><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);"> com.qqtech.ucstar.utils;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.File;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.IOException;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.nio.charset.Charset;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.HttpResponse;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.client.HttpClient;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.client.methods.HttpPost;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.HttpMultipartMode;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.MultipartEntity;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.content.FileBody;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.impl.client.DefaultHttpClient;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> android.os.AsyncTask;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_561_1728_Open_Image" onclick="this.style.display='none'; Codehighlighter1_561_1728_Open_Text.style.display='none'; Codehighlighter1_561_1728_Closed_Image.style.display='inline'; Codehighlighter1_561_1728_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none;" id="Codehighlighter1_561_1728_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_561_1728_Closed_Text.style.display='none'; Codehighlighter1_561_1728_Open_Image.style.display='inline'; Codehighlighter1_561_1728_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> HttpReqTask </span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);"> AsyncTask</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">Object, Object, HttpResponse</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_561_1728_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_561_1728_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />    @Override<br /><img id="Codehighlighter1_630_1725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_630_1725_Open_Text.style.display='none'; Codehighlighter1_630_1725_Closed_Image.style.display='inline'; Codehighlighter1_630_1725_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_630_1725_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_630_1725_Closed_Text.style.display='none'; Codehighlighter1_630_1725_Open_Image.style.display='inline'; Codehighlighter1_630_1725_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">    </span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);"> HttpResponse doInBackground(Object<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /> arg0) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_630_1725_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_630_1725_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        String fileUploadUrl </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) arg0[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        String streamid </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) arg0[</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        File file </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (File) arg0[</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">boolean paramBoolean = Boolean.parseBoolean((String) arg0[3]);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">String paramString3 = (String) arg0[4];</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        HttpClient localHttpClient </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DefaultHttpClient();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">String str1 = "fileName";</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        File localFile </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> file;<br /><img id="Codehighlighter1_971_1077_Open_Image" onclick="this.style.display='none'; Codehighlighter1_971_1077_Open_Text.style.display='none'; Codehighlighter1_971_1077_Closed_Image.style.display='inline'; Codehighlighter1_971_1077_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_971_1077_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_971_1077_Closed_Text.style.display='none'; Codehighlighter1_971_1077_Open_Image.style.display='inline'; Codehighlighter1_971_1077_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_971_1077_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_971_1077_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> ((localFile </span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 0);">||</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 0);">!</span><span style="color: rgb(0, 0, 0);">localFile.exists()))<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />                </span><span style="color: rgb(0, 0, 255);">throw</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> IOException(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">文件不存在:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> localFile);<br /><img id="Codehighlighter1_1102_1131_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1102_1131_Open_Text.style.display='none'; Codehighlighter1_1102_1131_Closed_Image.style.display='inline'; Codehighlighter1_1102_1131_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1102_1131_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1102_1131_Closed_Text.style.display='none'; Codehighlighter1_1102_1131_Open_Image.style.display='inline'; Codehighlighter1_1102_1131_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        }</span></span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (IOException e1) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1102_1131_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1102_1131_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            e1.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />        }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        HttpPost localPostMethod </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> HttpPost(fileUploadUrl</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">?streamid=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">streamid</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&amp;fileencode=UTF-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        MultipartEntity reqEntity </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">, Charset.forName(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">UTF-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br /><img id="Codehighlighter1_1450_1657_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1450_1657_Open_Text.style.display='none'; Codehighlighter1_1450_1657_Closed_Image.style.display='inline'; Codehighlighter1_1450_1657_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1450_1657_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1450_1657_Closed_Text.style.display='none'; Codehighlighter1_1450_1657_Open_Image.style.display='inline'; Codehighlighter1_1450_1657_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1450_1657_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1450_1657_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            FileBody bin </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> FileBody(file);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            reqEntity.addPart(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">file</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, bin);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            localPostMethod.setEntity(reqEntity);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            HttpResponse response </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> localHttpClient.execute(localPostMethod);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> response;<br /><img id="Codehighlighter1_1679_1707_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1679_1707_Open_Text.style.display='none'; Codehighlighter1_1679_1707_Closed_Image.style.display='inline'; Codehighlighter1_1679_1707_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1679_1707_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1679_1707_Closed_Text.style.display='none'; Codehighlighter1_1679_1707_Open_Image.style.display='inline'; Codehighlighter1_1679_1707_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        }</span></span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (Exception e) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1679_1707_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1679_1707_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            e.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />        }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />    }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div></strong><br /><br />调用代码如下：<br /><br /><br />Object[] param = new Object[5];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[0] = answer.getUploadURL();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[1] = answer.getStreamid();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[2] = new File(answer.getFileURL());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[3] = "false";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[4] = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsyncTask res = new HttpReqTask().execute(param);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpResponse rep = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rep = (HttpResponse) res.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rep.getStatusLine().getStatusCode() == 200) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("文件上传成功");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("文件上传失败");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br /><br /><img src ="http://www.blogjava.net/banxitan/aggbug/401439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-07-11 10:51 <a href="http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改模拟器DNS方法</title><link>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 04 Jun 2013 12:24:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/400196.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/400196.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/400196.html</trackback:ping><description><![CDATA[<div>今天在做手机终端开发时，发现连上域名服务器老是连不上，而直接用ＩＰ连接是ＯＫ的，初步怀凝是ＤＮＳ问题引起来，经查相关的资料，现记录如下：<br /><br />Android模拟器默认的地址是10.0.2.3，默认的DNS也是10.0.2.3，而一般电脑的IP都是192.168.1.100之类的，不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单，只要把模拟器的默认DNS设置成电脑的DNS地址即可。</div><div></div><div>第一步：用系统的命令进入Android开发包的tools目录</div><div></div><div>&nbsp;cd X:\...\android-sdk-windows\tool</div><div></div><div>第二布：使用adb的shell，确认系统的各项属性</div><div></div><div>adb shell</div><div></div><div>getprop&nbsp;</div><div></div><div>getprop会列出系统当前的各项属性</div><div></div><div>第三步：得到模拟器的DNS地址</div><div></div><div>在结果里可以看到：</div><div></div><div>[net.dns1]: [10.0.2.3]</div><div>[net.dns2]: [10.0.2.4]</div><div>[net.dns3]: [10.0.2.5]</div><div>[net.dns4]: [10.0.2.6]</div><div></div><div>第四步：把dns改成我们自己的DNS</div><div></div><div>setprop net.dns1 192.168.1.1</div><img src ="http://www.blogjava.net/banxitan/aggbug/400196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-06-04 20:24 <a href="http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>