HttpClientGet

来源:互联网 发布:java编写hello world 编辑:程序博客网 时间:2024/06/05 05:28

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.hgz.test.httpclientget.utils.StreamTools;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.IOException;
import java.io.InputStream;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnHttpClientGet = (Button) findViewById(R.id.btnHttpClientGet);
        btnHttpClientGet.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getFoodData();
            }
        });
    }
    /**
     * 使用HttpClient这个api请求网络数据
     * 请求方式:GET
     * android 6.0以后,google不再推介使用这种方式,推介HttpURLConnection
     */
    private void getFoodData() {
        new Thread() {

            @Override
            public void run() {
                super.run();
                try {
                    //1.打开浏览器
                    HttpClient httpClient = new DefaultHttpClient();
                    //2.填下地址
                    HttpGet httpGet = new HttpGet("http://apis.juhe.cn/cook/query.php?menu=秘制红烧肉&key=1fe0aebec3396c977560e16f14613413");
                    //3.敲回车
                    HttpResponse response = httpClient.execute(httpGet);
                    //4.等待服务器响应,获得响应状态码
                    int code = response.getStatusLine().getStatusCode();
                    //HttpStatus.SC_OK)=200
                    if (code == HttpStatus.SC_OK) {
                        //5.获取服务器响应的内容

                        InputStream is = response.getEntity().getContent();

                        //使用utils工具类

                        String json = StreamTools.getFood(is);
                        System.out.println(json.toString());
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();

    }

}

//Utils工具类

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class StreamTools {

    public static String getFood(InputStream is){
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer=new byte[1004];
            int len=0;
            while((len=is.read(buffer))!=-1){
                baos.write(buffer,0,len);
            }
            is.close();
            baos.close();
            return baos.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}



原创粉丝点击