使用Andnroid的post请求

来源:互联网 发布:java lock实现原理 编辑:程序博客网 时间:2024/05/16 08:44

   public static String commitPost(String path, Map<String, String> params, String encoding) {        StringBuffer sb = new StringBuffer();        try {            //将map转化为网络数据发送            if (params != null && !params.isEmpty()) {                for (Map.Entry<String, String> entry : params.entrySet()) {                    sb.append(entry.getKey()).append("=");                    sb.append(URLEncoder.encode(entry.getValue(), encoding));                    sb.append("&");                }                sb.deleteCharAt(sb.length() - 1);            }            byte[] data = sb.toString().getBytes();            URL url = new URL(path);            //获取httpURLConection对象            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            conn.setConnectTimeout(5000);            conn.setRequestMethod("POST");            conn.setDoOutput(true);            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");            //获取输入流            OutputStream outStream = conn.getOutputStream();            outStream.write(data);            outStream.flush();            //获取相应            if (conn.getResponseCode() == 200) {                byte[] buffer =new byte[1024];                int r;                StringBuffer contextBuffer = new StringBuffer();                while ((r = conn.getInputStream().read(buffer)) != -1) {                    contextBuffer.append(new String(buffer, 0, r));                }                return contextBuffer.toString();            }            return "";        } catch (Exception e) {            return "请求内部出现异常!";        }        //alt+command+l refresh code    }

使用HttpURLConnection获取相关的输入流和输出流即可。

测试:

private Handler mHandler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            if(msg.what==200){                Bundle bundle=msg.getData();                Toast.makeText(TestPost.this,bundle.getString("info"),Toast.LENGTH_SHORT).show();            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test_post);    }    public void testPost(View view) {        new Thread(new Runnable() {            @Override            public void run() {                Map<String,String> map=new HashMap<String, String>();                map.put("phone","13660800712");                map.put("key", "335adcc4e891ba4e4be6d7534fd54c5d");                String result=SetPostUtil.commitPost("http://apis.juhe.cn/mobile/get?", map, "utf-8");                Log.i("result====>",result);                Message message=Message.obtain();                message.what=200;                Bundle bundle=new Bundle();                bundle.putString("info",result);                message.setData(bundle);                mHandler.sendMessage(message);              //  Toast.makeText(TestPost.this,result,Toast.LENGTH_SHORT).show();            }        }).start();    }

虽然,这些没有什么用,但是很基础适合悠闲时,coding

0 0
原创粉丝点击