请大家帮忙看看这个异常怎么回事,多谢啦。public class CustomHttpClient {
private static HttpClient customHttpClient;
public CustomHttpClient() {
// TODO Auto-generated constructor stub
}
public static synchronized HttpClient getHttpClient(){
if(customHttpClient==null){
HttpParams params=new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
HttpProtocolParams.setUserAgent(params, "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build/FRG83)" +
"AppleWebKit/533.1(KHTML,like Gecko)Version/4.0 Mobile Safari/533.1");
ConnManagerParams.setTimeout(params, 1000);
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 10000);
SchemeRegistry schReg=new SchemeRegistry();
schReg.register(new Scheme("https", PlainSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conMgr=new ThreadSafeClientConnManager(params, schReg);
customHttpClient=new DefaultHttpClient(conMgr,params);
}
return customHttpClient;
}
public Object clone() throws CloneNotSupportedException{
throw new CloneNotSupportedException();
}
}
public class DownloadImageTask extends AsyncTask<String, integer, Bitmap>{
private Context mContext;
DownloadImageTask(Context context){
mContext=context;
}
protected void onPreExecute(){
//为doInBackground()运行做准备工作
}
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
Log.v("doInBackground", "doing download od image");
return downloadImage(params);
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(result!=null){
ImageView mImage=(ImageView)((Activity)mContext).findViewById(R.id.image);
mImage.setImageBitmap(result);
}
}
@Override
protected void onProgressUpdate(integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
TextView mText=(TextView)((Activity)mContext).findViewById(R.id.text);
mText.setText("Progress so far:"+values[0]);
}
private Bitmap downloadImage(String... urls){//变参
HttpClient httpClient=CustomHttpClient.getHttpClient();
try{
HttpGet request=new HttpGet(urls[0]);
HttpParams params=new BasicHttpParams();
HttpConnectionParams.setSoTimeout(params, 60000);
request.setParams(params);
//publishProgress(25);
HttpResponse response=httpClient.execute(request);
byte[] image=EntityUtils.toByteArray(response.getEntity());
Bitmap mBitmap=BitmapFactory.decodeByteArray(image, 0, image.length);
return mBitmap;
}catch(IOException e){
Log.e("e", "eeeeeeeeeeeeeee");
e.printStackTrace();
}
return null;
}
}public class HttpActivity extends Activity {
/** Called when the activity is first created. */
private DownloadImageTask diTask;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void doClick(View view){
if(diTask!=null){
AsyncTask.Status diStatus=diTask.getStatus();
Log.v("doClick", "diTask status is"+diStatus);
if(diStatus!=AsyncTask.Status.FINISHED){
Log.v("doClick", "...no need to start a new task");
return;
}
diTask =new DownloadImageTask(this);
}
diTask=new DownloadImageTask(this);
diTask.execute("http://www.baidu.com");
}
}
private static HttpClient customHttpClient;
public CustomHttpClient() {
// TODO Auto-generated constructor stub
}
public static synchronized HttpClient getHttpClient(){
if(customHttpClient==null){
HttpParams params=new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
HttpProtocolParams.setUserAgent(params, "Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build/FRG83)" +
"AppleWebKit/533.1(KHTML,like Gecko)Version/4.0 Mobile Safari/533.1");
ConnManagerParams.setTimeout(params, 1000);
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 10000);
SchemeRegistry schReg=new SchemeRegistry();
schReg.register(new Scheme("https", PlainSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conMgr=new ThreadSafeClientConnManager(params, schReg);
customHttpClient=new DefaultHttpClient(conMgr,params);
}
return customHttpClient;
}
public Object clone() throws CloneNotSupportedException{
throw new CloneNotSupportedException();
}
}
public class DownloadImageTask extends AsyncTask<String, integer, Bitmap>{
private Context mContext;
DownloadImageTask(Context context){
mContext=context;
}
protected void onPreExecute(){
//为doInBackground()运行做准备工作
}
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
Log.v("doInBackground", "doing download od image");
return downloadImage(params);
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(result!=null){
ImageView mImage=(ImageView)((Activity)mContext).findViewById(R.id.image);
mImage.setImageBitmap(result);
}
}
@Override
protected void onProgressUpdate(integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
TextView mText=(TextView)((Activity)mContext).findViewById(R.id.text);
mText.setText("Progress so far:"+values[0]);
}
private Bitmap downloadImage(String... urls){//变参
HttpClient httpClient=CustomHttpClient.getHttpClient();
try{
HttpGet request=new HttpGet(urls[0]);
HttpParams params=new BasicHttpParams();
HttpConnectionParams.setSoTimeout(params, 60000);
request.setParams(params);
//publishProgress(25);
HttpResponse response=httpClient.execute(request);
byte[] image=EntityUtils.toByteArray(response.getEntity());
Bitmap mBitmap=BitmapFactory.decodeByteArray(image, 0, image.length);
return mBitmap;
}catch(IOException e){
Log.e("e", "eeeeeeeeeeeeeee");
e.printStackTrace();
}
return null;
}
}public class HttpActivity extends Activity {
/** Called when the activity is first created. */
private DownloadImageTask diTask;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void doClick(View view){
if(diTask!=null){
AsyncTask.Status diStatus=diTask.getStatus();
Log.v("doClick", "diTask status is"+diStatus);
if(diStatus!=AsyncTask.Status.FINISHED){
Log.v("doClick", "...no need to start a new task");
return;
}
diTask =new DownloadImageTask(this);
}
diTask=new DownloadImageTask(this);
diTask.execute("http://www.baidu.com");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货