HttpTest

public class HttpUtil {
    public static void sendHttpRequest(final String adress,
                                         final HttpCallbackListenner listenner){
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpURLConnection connection=null;
                try{
                    URL url=new URL(adress);
                    connection=(HttpURLConnection)url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);
                    connection.setDoInput(true);
                    connection.setDoOutput(true);
                    InputStream in=connection.getInputStream();
                    BufferedReader reader=new BufferedReader(new InputStreamReader(in));
                    StringBuilder response=new StringBuilder();
                    String line;
                    while ((line=reader.readLine())!=null){
                        response.append(line);
                    }
                    if (listenner!=null){
                        listenner.onFinnsh(response.toString());
                    }
                } catch (Exception e) {
                    if (listenner!=null){
                        listenner.onError(e);
                    }
                } finally {
                    if (connection!=null){
                        connection.disconnect();
                    }
                }


            }
        }).start();
    }
    public static void sendOkhttpRequest(String adress,okhttp3.Callback callback){
        OkHttpClient client=new OkHttpClient();
        Request request=new Request.Builder().url(adress).build();
        client.newCall(request).enqueue(callback);
    }
}
public interface HttpCallbackListenner {
    void onFinnsh(String response);
    void onError(Exception e);
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mBtnsendata1,mBtnsendata2;
    private TextView mTvshow;
    private Handler mainHandler= new Handler()
    {
        @Override
        public void handleMessage(Message msg) {
             Bundle bundle=msg.getData();
            String data=bundle.getString("data");
            mTvshow.setText(data);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtnsendata1= (Button) findViewById(R.id.senddata1);
        mBtnsendata2= (Button) findViewById(R.id.senddata2);
        mTvshow= (TextView) findViewById(R.id.show);
        mBtnsendata1.setOnClickListener(this);
        mBtnsendata2.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        String adrress="http://10.39.1.16";
        switch (view.getId()){
            case R.id.senddata1:
                HttpUtil.sendHttpRequest(adrress, new HttpCallbackListenner() {
                    @Override public void onFinnsh(final String response) {
                       /* runOnUiThread(new Runnable() {
                            @Override
                            public void run() {*/
                                mTvshow.setText(response);
//                            }
//                        });

                    }

                    @Override
                    public void onError(Exception e) {

                    }
                });
                break;
            case R.id.senddata2:
                HttpUtil.sendOkhttpRequest(adrress, new okhttp3.Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {

                    }

                    @Override
                    public void onResponse(Call call,  Response response) throws IOException {
                                String resonsedata = response.body().string();
                                Message message=Message.obtain();
                                Bundle budle=new Bundle();
                                budle.putString("data",resonsedata);
                                message.setData(budle);
                                mainHandler.sendMessage(message);

                    }
                });
        }
    }
}

你可能感兴趣的:(HttpTest)