package com.bwie.day_06_httpclient;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
public void run() {
get_infoPOST();
};
}.start();
}
private void get_infoPOST() {
// String uri="http://www.baidu.com";
//登录
// String uri="http://169.254.172.203:8080/web/servlet/LoginServlet";
//聚合
String uri= "http://apis.juhe.cn/goodbook/catalog?";
//json
//String uri="http://169.254.172.203:8080/index.json";
//得到HttpClient对象
HttpClient httpClient =new DefaultHttpClient();
//通过Post方式访问,并制定接口地址,传的参数就是接口地址
HttpPost httpPost =new HttpPost(uri);
// HttpGet httpGet =new HttpGet(uri);
try {
//发送请求,并且得到响应数据
// HttpResponse response = httpClient.execute(httpPost);
//该list集合是携带客户端发给服务器的参数
List<NameValuePair> list =new ArrayList<NameValuePair>();
//通过键值对形式,传递服务器需要的参数
list.add(new BasicNameValuePair("key", "cca134699ab46a8322a322c8c011449a"));
// list.add(new BasicNameValuePair("pass", "abc"));
//得到实体对象,并指定需要携带的参数和编码集
UrlEncodedFormEntity entity =new UrlEncodedFormEntity(list);
//将实体设置给httpPost对象,用于传递给服务
httpPost.setEntity(entity);
//执行要访问的网络请求(联网了)
HttpResponse response = httpClient.execute(httpPost);
//得到状态行
StatusLine statusLine = response.getStatusLine();
//通过状态行,得到状态码
int statusCode = statusLine.getStatusCode();
if(statusCode==200){
//得到服务器返回的实体,这个实体包含着需要的数据(json,xml)
HttpEntity entity_ = response.getEntity();
//将实体转化成String类型
String string = EntityUtils.toString(entity_);
Log.i("http_", string);
}else{
Toast.makeText(MainActivity.this, " 服务器错误 ", 0).show();
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}