您的位置:首页 > 理论基础 > 计算机网络

httpClient的Get和Post请求

2016-06-13 08:27 447 查看
public class MainActivity extends Activity {

String key = "3ac9f31ff66b9746539472887b3799c3";

// 接口地址

String path = "http://web.juhe.cn:8080/constellation/getAll";

// 通过get请求时的接口地址

String get_path = "http://web.juhe.cn:8080/constellation/getAll?consName=狮子座&type=today&key="

+ key;

private EditText editText;

Handler handler = new Handler() {

public void handleMessage(android.os.Message msg) {

Bean bean = (Bean) msg.obj;

// textView.setText(bean.date+"\n"+bean.name+"\n"+bean.finance+"\n"+bean.luckyStone+"\n"+bean.love.get(0));

textView.setText(bean.toString());

};

};

private TextView textView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

editText = (EditText) findViewById(R.id.editText);

textView = (TextView) findViewById(R.id.textView);

}

/**

* 点击请求网络

*/

public void send(View v) {

// 获取输入框的内容

final String name = editText.getText().toString().trim();

// 如果输入框有内容就根据输入的星座名称请求网络

if (!TextUtils.isEmpty(name)) {

new Thread() {

public void run() {

// httpGet(name);

httpPost(name);

};

}.start();

} else {

Toast.makeText(MainActivity.this, " 请输入星座 ", 1).show();

}

}

/**

* GET方式请求网络

*/

private void httpGet(String name) {

// HttpClient得到HttpClient对象

HttpClient httpClient = new DefaultHttpClient();

// 以get方式请求.并设置接口地址

HttpGet httpGet = new HttpGet(path + "consName=" + name

+ "&type=year&key=3ac9f31ff66b9746539472887b3799c3");

try {

// 连接网络请求数据,请求到的数据在httpResponse对象里

HttpResponse httpResponse = httpClient.execute(httpGet);

// 服务器返回的内容在HttpEntity

HttpEntity entity = httpResponse.getEntity();

// 把entity转成String

String string = EntityUtils.toString(entity);

// System.out.println(string);

Gson gson = new Gson();

Bean bean = gson.fromJson(string, Bean.class);

Message msg = Message.obtain();

msg.obj = bean;

handler.sendMessage(msg);

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* POST方式请求

*

* @param name

*/

protected void httpPost(String name) {

HttpClient httpclient=new DefaultHttpClient();

//通过POST方式请求

HttpPost httpPost=new HttpPost(path);

//得到一个集合,这个集合里添加的是要传递给服务器的参数

List<NameValuePair> parameters=new ArrayList<NameValuePair>();

//consName=狮子座

//type=today

//以键值对的形式添加参数

parameters.add(new BasicNameValuePair("consName", name));

parameters.add(new BasicNameValuePair("type", "year"));

parameters.add(new BasicNameValuePair("key", key));

try {

//设置实体内容和编码格式

UrlEncodedFormEntity encodedFormEntity=new UrlEncodedFormEntity(parameters, "UTF-8");

//设置实体,用于传递给服务器参数

httpPost.setEntity(encodedFormEntity);

//请求网络

HttpResponse httpResponse = httpclient.execute(httpPost);

//先得到状态行,从状态行里得到状态码

if( httpResponse.getStatusLine().getStatusCode()==200){

//得到实体

HttpEntity entity = httpResponse.getEntity();

//请求到的json

String string = EntityUtils.toString(entity);

Gson gson=new Gson();

Bean bean = gson.fromJson(string, Bean.class);

Message msg=Message.obtain();

msg.obj=bean;

handler.sendMessage(msg);

}

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: