HttpGet请求
来源:互联网 发布:linux copy文件夹 编辑:程序博客网 时间:2024/04/29 05:58
在我们平时做的一些项目中,经常会用到连接网络的功能。这里以HttpGet为例子做一个简单的访问百度页面得到其中的代码的例子。1 首先,需要得到自己要访问的服务器地址
String uriAPI = "http://www.baidu.com";
2 然后创建我们的请求
HttpGet httpRequest = new HttpGet(uriAPI);
3 执行我们的请求之后得到返回的对象
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == 200) { //执行连接成功后的代码 }
/*
完整的代码
*/
package com.hdu.httppost;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.ActionBarActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import java.io.IOException;public class MainActivity extends ActionBarActivity { private EditText et_load; private Button visit; private String uriAPI = "http://www.baidu.com"; private String result; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { et_load.setText(result); } else if (msg.what == 2) { et_load.setText("连接错误"); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_load = (EditText) findViewById(R.id.et_load); visit = (Button) this.findViewById(R.id.visit); visit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread() { public void run() { HttpGet httpRequest = new HttpGet(uriAPI); try { HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(httpResponse.getEntity()); handler.sendEmptyMessage(1); } } catch (IOException e) { e.printStackTrace(); } } }.start(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
这里有人可能会问为什么要新建线程来执行呢?这里就涉及到android中的UI线程子线程的关系了,android中,UI的更新只能在主线程中, 然而当执行一些比较花费时间的操作的时候,却不能直接在主线程中进行,因为会阻塞线程,这样就需要新建线程了。所以当我们要更新线程的时候,需要从子线程中发送信息给主线程,通知主线程进行操作,因为要有Handler对象。
0 0
- httpget请求
- HttpGet请求
- HttpGet与Httpost请求
- 网络编程 HttpGet请求
- angular实现httpget请求
- Apache HttpClient发送HttpGet请求
- httpGet()中拼接请求URL
- httpGet()中拼接请求URL
- 网络访问请求之Httpget请求
- HttpClient的HttpGet请求乱码问题解决
- android 提交httpGet和httpPost请求
- HttpPost,HttpGet,HttpPut,HttpDelete请求方式
- JAVA通过java.net发送httpGet请求
- 用HttpGet和HttpClient网路请求数据
- android平台HttpGet、HttpPost请求实例
- Android平台HttpGet、HttpPost请求实例
- Android平台HttpGet、HttpPost请求实例
- Java的HttpClient、HttpGet和HttpPost请求
- eclipse如何查看安卓源码
- 百度地图---获取当前的位置返回的是汉字显示而不是经纬度
- 《深入理解Linux网络技术内幕》阅读笔记(十六)
- Cocos2d-x 3.X, Android Studio版添加多盟广告平台
- pomelo 服务器开发常用术语
- HttpGet请求
- 使用MinGW编译Efficient graph-based image segmentation
- ubuntu 15.04 怎么安装搜狗输入法
- Http协议原理解析
- JS短路原理的应用示例 精简代码的途径
- GOF设计模式(Design Patterns)
- [LeetCode-168] Excel Sheet Column Title(10进制转26进制)
- UICollectionView自定义布局
- UVA 11800 Determine the Shape