android网络请求之POST方法

package com.jredu.helloworld.activity;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.jredu.helloworld.R;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;

public class HttpUrlConnectionPostActivity extends AppCompatActivity {
    WebView webView;
    Button button;
    TextView success;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_http_url_connection_post);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        HttpUrlConnectionPost();
                    }
                }).start();
            }
        });
    }

    public void HttpUrlConnectionPost(){
        HttpURLConnection urlConnection = null;
        try {
            URL url = new URL("http//:www.baidu.com");
            urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setConnectTimeout(5*1000);
            urlConnection.setReadTimeout(5*1000);
            urlConnection.setDoOutput(true);
            urlConnection.setDoInput(true);
            urlConnection.setUseCaches(false);
            urlConnection.setRequestMethod("POST");
            urlConnection.setRequestProperty("Connection","Keep-Alive");
            urlConnection.setRequestProperty("Charset","utf-8");
            urlConnection.setRequestProperty("Content-type","application/x-www-form-urlencode");
            String a = "page = 1&num = 10";
            OutputStream os = urlConnection.getOutputStream();
            os.write(a.getBytes());
            os.flush();
            os.close();
            if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
                InputStream is = urlConnection.getInputStream();
                StringBuilder sb = new StringBuilder();
                byte[] bytes = new byte[1024];
                int i = 0;
                while ((i = is.read(bytes)) != -1){
                    sb.append(new String(bytes,0,i,"utf-8"));
                }
                is.close();
                Message message = handler.obtainMessage(1,sb.toString());
                handler.sendMessage(message);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (urlConnection != null){
                urlConnection.disconnect();
            }
        }
    }

    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg != null && msg.what == 1){
                String s = (String) msg.obj;
                String data = new String(s.getBytes(), Charset.forName("utf-8"));
                webView.getSettings().setDefaultTextEncodingName("utf-8");
                webView.getSettings().setJavaScriptEnabled(true);
                webView.loadDataWithBaseURL(null,data,"text/html","utf-8",null);
                Toast.makeText(getApplication(),"post请求成功!",Toast.LENGTH_SHORT).show();
            }
        }
    };
}

 

posted @ 2016-09-20 21:19  卡夫卡15  阅读(1156)  评论(0编辑  收藏  举报