HttpClientPOST

来源:互联网 发布:淘宝卖家花呗开通条件 编辑:程序博客网 时间:2024/06/10 17:16
package com.httpclientpost;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.message.BasicNameValuePair;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    String url="http://v.juhe.cn/toutiao/index";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //执行异步的方法
        new MyAsyncTask().execute(url);
    }

    class MyAsyncTask extends AsyncTask<String,Integer,String>
    {

        /**
         * 请求网络数据的方法
         * @param strings
         * @return
         */
        @Override
        protected String doInBackground(String... strings) {

            String key="22a108244dbb8d1f49967cd74a0c144d";
            //存放从网络上获取的json串
            StringBuffer result=new StringBuffer();
            try {
                HttpClient client=new DefaultHttpClient();
                //创建HttpPost  post方法
                HttpPost httpPost=new HttpPost(strings[0]);
                //封装传递参数的集合
                List<NameValuePair> paramters=new ArrayList<NameValuePair>();
                //向集合中添加要传递的参数
                paramters.add(new BasicNameValuePair("key",key));
                //创建传递参数封装  设置编码格式
                UrlEncodedFormEntity encodeEntity=new UrlEncodedFormEntity(paramters,"UTF-8");
                //把实体对象存入到httpPost对象中
                httpPost.setEntity(encodeEntity);
                //发起请求  拿到HttpResponse对象
                HttpResponse response = client.execute(httpPost);
                int responseCode = response.getStatusLine().getStatusCode();
                if(200==responseCode)
                {
                    //得到返回的实体对象
                    HttpEntity entity = response.getEntity();
                    InputStream inputStream = entity.getContent();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                    String line=null;
                    while((line=reader.readLine())!=null){
                        result.append(line);
                    }
                    System.out.println("result============"+result.toString());
                }

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

            return result.toString();
        }

        /**
         * 请求完数据执行的方法
         * @param s
         */
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
        }
    }

}