HttpClient的用法(包含httpget和httppost)

原创 2016年05月31日 09:31:15
<span style="font-size:18px;">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方式请求网络
	 */
	<span style="color:#ff0000;">private void httpGet(String name) {</span>
		// 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
	 */
	<span style="color:#ff0000;">protected void httpPost(String name) </span>{
	
		
		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();
		}
	}
}</span>







HttpClient的Post和Get访问网页

一、基础JAR包 Maven工程下pom.xml需配置的jar包 junit junit 4.8.2 test org.apache.httpcom...
  • yanghaitaohhh
  • yanghaitaohhh
  • 2014年09月04日 18:35
  • 11294

httpclient 简单介绍使用方法

客户端使用HttpClient发送请求。 1. 创建HttpClient。 2. 创建请求实例,指定URL。发送GET请求,创建HttpGet对象;发送POST请求,创建HttpPost对象。 3....
  • zc309087694
  • zc309087694
  • 2016年08月04日 10:09
  • 512

【Android】【嘿!Java】Android工程、Java工程中通过HttpClient请求网络数据的不同方式

最近,写App时遇到了一个奇怪的问题:博主的App中需要向服务器以GET方式发送网络请求,之前博主没怎么写过这方面的代码,为了方便调试,就建了一个Java工程,...
  • u010376274
  • u010376274
  • 2014年08月23日 10:54
  • 1633

HttpClient get和post请求的示例代码以及防乱码处理

请求别人发布的服务我们可能就会使用到HttpClient这个包,HttpClient就是一个支持 HTTP 协议的客户端编程工具包,用来模拟浏览器请求。 乱码解决方法: 就是给HttpGet对象或者H...
  • qq_20641565
  • qq_20641565
  • 2017年02月22日 22:39
  • 5957

【HttpClient学习与实战】1.使用httpClient实现get与post信息传输

一般网络会给我们提供许多数据接口,我们的一些信息并不是我们本系统提供而是第三方给我们提供的,他们通常会给我们一个提供数据源的接口,访问这个接口可以获取相应的数据用于我们自己的应用中(WebServic...
  • u013517797
  • u013517797
  • 2016年07月06日 15:38
  • 3519

HttpClient Post和Get请求实例+ 中文参数处理

转自http://starlight00.blog.163.com/blog/static/465183201210961537965/   import java.io.IOExcep...
  • HackAge4619
  • HackAge4619
  • 2017年03月31日 10:48
  • 877

Java使用HttpClient发送Get和Post请求

package com.taotao.httpClient.demo;import java.io.IOException; import java.io.UnsupportedEncodingExc...
  • liuxia8811
  • liuxia8811
  • 2017年02月22日 08:54
  • 4497

关于Android studio中httpclient不能用的问题

自己开始学习android也有一段时间了,最近开始学习网络请求这一块,在使用httpclient时,发现并用不了,自己上网经过查阅很多人的答案最后总结一下。如果有各位大神发现有不足之处,恳请指点一下。...
  • Dseai_
  • Dseai_
  • 2016年06月05日 18:41
  • 2072

轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试

本文主要来分享一下该工具类的测试结果。工具类的整体源码不再单独分享,源码基本上都已经在文章中了。开始我们的测试。单线程调用测试: public static void testOne() throws...
  • xiaoxian8023
  • xiaoxian8023
  • 2015年11月19日 11:21
  • 6775

HttpClient用Post和Get带参数提交帮助类

import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.H...
  • u013810758
  • u013810758
  • 2016年08月24日 21:32
  • 7678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HttpClient的用法(包含httpget和httppost)
举报原因:
原因补充:

(最多只允许输入30个字)