阅读背景:

使用asynctask java.util.concurrent.TimeoutException的Android HTTP POST

来源:互联网 

//Global.java

package global;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;

import android.content.Context;
import android.os.AsyncTask;

public class Global{

    public static final String TLD          =   "local";
    public static final String SERVER       =   "https://m.server."+TLD+"/";
    public static final String POST_ADD     =   SERVER+"post";
    public static final String REQUEST_ADD  =   SERVER+"request";

    public static Context app_context       =   null;

    public static class post_to_server extends AsyncTask<ArrayList<NameValuePair>, String, String>{

        public String response_from_server = "";

        @Override
        protected String doInBackground(ArrayList<NameValuePair>... params){

            try{

                HttpParams param = new BasicHttpParams();
                param.setParameter("reference", "x");
                param.setBooleanParameter("http.protocol.expect-continue", false);
                param.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

                HttpPost http_post = new HttpPost(Global.POST_ADD);

                http_post.setEntity(new UrlEncodedFormEntity(params[0], HTTP.UTF_8));
                http_post.setParams(param);

                HttpClient http_client = new DefaultHttpClient();

                try{

                    HttpResponse http_response = http_client.execute(http_post);
                    HttpEntity http_entity = http_response.getEntity();
                    InputStreamReader input_stream = new InputStreamReader(http_entity.getContent());
                    BufferedReader buffer_reader = new BufferedReader(input_stream);

                    String buffer;

                    while ((buffer = buffer_reader.readLine()) != null) {
                        response_from_server+= buffer;
                        publishProgress();
                    }

                }catch(ClientProtocolException e){
                    e.printStackTrace();
                }catch(IOException e){
                    e.printStackTrace();
                }catch(Exception e){
                    e.printStackTrace();
                }

            }catch(Exception e){
                e.printStackTrace();
            }

            return response_from_server;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
        }

        @Override
        protected void onPreExecute(){
            super.onPreExecute();
        }

        @Override
        protected void onProgressUpdate(String... values) {
        }
    }

    public static class is_connected extends AsyncTask<String, String, Boolean> {

        protected Boolean doInBackground(String... urls) {
            boolean response = false;

            try{
                URL url = new URL(Global.SERVER);
                HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
                urlc.setConnectTimeout(3000);
                urlc.connect();
                if (urlc.getResponseCode() == 200) {
                    response = true;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

            return response;
        }

        @Override
        protected void onProgressUpdate(String... values) {
        }

        @Override
        protected void onPostExecute(Boolean result) {
            super.onPostExecute(result);
        }

        @Override
        protected void onPreExecute(){
            super.onPreExecute();
        }

    }
}
package global;

import java.io



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: