Http网络请求
来源:互联网 发布:linux系统界面 编辑:程序博客网 时间:2024/05/16 06:03
get是从服务器上获取数据,post是向服务器传送数据get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。get安全性非常低,post安全性较高。但是执行效率却比Post方法好。get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
HTTP GET请求
package com.zhidi.httpget;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {private EditText et_username;private EditText et_password;private Button bt_show;String result="";/**get请求URL地址*/private static final String URL=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); bt_show.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//android4.0后的新的特性,网络数据请求时不能放在主线程中。//7、使用线程执行访问服务器,获取返回信息后通知主线程更新UI或者提示信息。final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { //8、提示读取结果 Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } } }; // 启动线程来执行任务 new Thread() { public void run() { //请求网络 loginByGet(et_username.getText().toString(), et_password.getText().toString()); Message m = new Message(); m.what = 1; // 发送消息到Handler handler.sendMessage(m); } }.start(); }}); } private void init(){ et_username=(EditText)findViewById(R.id.et_username); et_password=(EditText)findViewById(R.id.et_password); bt_show=(Button)findViewById(R.id.bt_login); } /** * 请求后台,判断登录结果。 * @param username * @param password */ public void loginByGet(String username, String password) { try { //1、设置请求的地址。通过URLEncoder.encode(String s,"UTF-8")将字符串转换为UTF-8编码 String strUrl = URL +"?username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8"); //2、根据地址创建URL对象(网络访问的url) URL url = new URL(strUrl); //3、url.openConnection()打开网络链接 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //4、获取响应的输入流对象 InputStreamReader is = new InputStreamReader(conn.getInputStream()); BufferedReader bufferedReader = new BufferedReader(is); StringBuffer strBuffer = new StringBuffer(); String line = null; //5、读取服务器返回信息 while ((line = bufferedReader.readLine()) != null) { strBuffer.append(line); } result = strBuffer.toString(); //6、关闭InputStream、关闭http连接 is.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
HTTP POST请求
package com.zhidi.httppost;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {private EditText et_username;private EditText et_password;private Button bt_show;String result="";/**post请求URL地址*/private static final String URL=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); bt_show.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//android4.0后的新的特性,网络数据请求时不能放在主线程中。//9、使用线程执行访问服务器,获取返回信息后通知主线程更新UI或者提示信息。final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { //8、提示读取结果 Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } } }; // 启动线程来执行任务 new Thread() { public void run() { //请求网络 loginByPost(et_username.getText().toString(), et_password.getText().toString()); Message m = new Message(); m.what = 1; // 发送消息到Handler handler.sendMessage(m); } }.start(); }}); } private void init(){ et_username=(EditText)findViewById(R.id.et_username); et_password=(EditText)findViewById(R.id.et_password); bt_show=(Button)findViewById(R.id.bt_login); } /** * 请求后台,判断登录结果。 * @param username * @param password */ public void loginByPost(String username, String password) { try { //1、根据地址创建URL对象(网络访问的url) URL url = new URL(URL); //2、url.openConnection()打开网络链接 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //3、设置请求的方式 conn.setRequestMethod("POST"); conn.setDoInput(true);//发送POST请求必须设置允许输出 conn.setDoOutput(true);//发送POST请求必须设置允许输入 //4、设置请求的头 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Charset", "utf-8"); String data = "username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8");//传递的数据 conn.setRequestProperty("Content-Length",String.valueOf(data.getBytes().length)); //5、获取输出流 OutputStream os = conn.getOutputStream(); os.write(data.getBytes()); os.flush(); //6、获取响应的输入流对象 InputStreamReader is = new InputStreamReader(conn.getInputStream()); BufferedReader bufferedReader = new BufferedReader(is); StringBuffer strBuffer = new StringBuffer(); String line = null; //7、读取服务器返回信息 while ((line = bufferedReader.readLine()) != null) { strBuffer.append(line); } result = strBuffer.toString(); //8、关闭InputStream、关闭http连接 is.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
HttpClientGet请求
package com.zhidi.httpclientget;import java.net.URLEncoder;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/** * HttpClient get * @author Administrator */public class MainActivity extends Activity {private EditText et_username;private EditText et_password;private Button bt_show;String result="";/**get请求URL地址*/private static final String URL=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); bt_show.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//android4.0后的新的特性,网络数据请求时不能放在主线程中。//7、使用线程执行访问服务器,获取返回信息后通知主线程更新UI或者提示信息。final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { //8、提示读取结果 Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } } }; // 启动线程来执行任务 new Thread() { public void run() { //请求网络 loginByHttpClientGet(et_username.getText().toString(), et_password.getText().toString()); Message m = new Message(); m.what = 1; // 发送消息到Handler handler.sendMessage(m); } }.start(); }}); } private void init(){ et_username=(EditText)findViewById(R.id.et_username); et_password=(EditText)findViewById(R.id.et_password); bt_show=(Button)findViewById(R.id.bt_login); } /** * 请求后台,判断登录结果。 * @param username * @param password */ public void loginByHttpClientGet(String username,String password) { //1、创建 HttpClient的实例 HttpClient httpClient = new DefaultHttpClient(); try { //2、创建某种连接方法的实例,在这里是HttpGet。 String strUrl = URL +"?username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8"); HttpGet httpGet = new HttpGet(strUrl); //3、获取HttpResponse实例 HttpResponse httpResp = httpClient.execute(httpGet); //4、判断是否能够请求成功 if(httpResp.getStatusLine().getStatusCode()==200){ //5、获取返回的数据 result = EntityUtils.toString(httpResp.getEntity(),"UTF-8"); } else { Log.i("HttpClientGet", "HttpGet方式请求失败"); } } catch (Exception e) { e.printStackTrace(); }finally { // 6、释放连接。无论执行方法是否成功,都必须释放连接 httpClient.getConnectionManager().shutdown();//释放链接 } } }
HttpClientPost请求
package com.zhidi.httpclientpost;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;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.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/** * HttpClient post * @author Administrator */public class MainActivity extends Activity {private EditText et_username;private EditText et_password;private Button bt_show;String result="";/**post请求URL地址*/private static final String URL=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); bt_show.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//android4.0后的新的特性,网络数据请求时不能放在主线程中。//8、使用线程执行访问服务器,获取返回信息后通知主线程更新UI或者提示信息。final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { //9、提示读取结果 Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } } }; // 启动线程来执行任务 new Thread() { public void run() { //请求网络 loginByHttpClientPost(et_username.getText().toString(), et_password.getText().toString()); Message m = new Message(); m.what = 1; // 发送消息到Handler handler.sendMessage(m); } }.start(); }}); } private void init(){ et_username=(EditText)findViewById(R.id.et_username); et_password=(EditText)findViewById(R.id.et_password); bt_show=(Button)findViewById(R.id.bt_login); } /** * 请求后台,判断登录结果。 * @param username * @param password */ public void loginByHttpClientPost(String username,String password) { //1.创建 HttpClient的实例 HttpClient httpClient = new DefaultHttpClient(); try { //2、创建某种连接方法的实例,在这里是HttpPost。 HttpPost httpPost = new HttpPost(URL); //3、封装传递参数的集合 List<NameValuePair> parameters = new ArrayList<NameValuePair>(); parameters.add(new BasicNameValuePair("username", username));//往这个集合中添加你要传递的参数 parameters.add(new BasicNameValuePair("password", password)); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters, "UTF-8");//创建传递参数封装 实体对象,设置传递参数的编码 httpPost.setEntity(entity);//把实体对象存入到httpPost对象中 //4、调用HttpClient实例的execute方法来执行创建好的method实例 HttpResponse httpResp = httpClient.execute(httpPost); //5、判断是否能够请求成功 if(httpResp.getStatusLine().getStatusCode()==200){ //6、获取返回的数据 result = EntityUtils.toString(httpResp.getEntity(),"UTF-8"); } else { Log.i("HttpClientPost", "HttpPost方式请求失败"); } }catch (Exception e) { e.printStackTrace(); }finally { // 7、释放连接。无论执行方法是否成功,都必须释放连接 httpClient.getConnectionManager().shutdown();//释放链接 } } }
0 0
- http网络请求
- android 网络请求 http
- HTTP网络请求
- HTTP POST 网络请求
- HTTP网络请求
- iOS9 http 网络请求
- Http网络请求
- 网络请求Http
- http,请求网络数据
- http网络请求
- http网络请求框架
- HTTP网络请求
- Http网络请求
- Http协议网络请求
- HTTP 网络请求原理
- http网络请求基本概念
- http网络请求
- iOS网络--HTTP请求
- js Map封装
- 延迟执行
- Editplus个人喜好设置
- javaMail发送邮件,支持多人发送,多人收信,多附件等
- shell 实例收集
- Http网络请求
- Android开源BezierView:仿QQ未读消息99+条的红色气泡
- 【ZooKeeper】ZooKeeper原理及使用场景
- 第二十一天
- 深度分析Twitter Heron
- thinkphp url链接自动被加上了后缀html(如何修改)
- 关于android开发中如何在sdcard中添加文件的说明
- 数据库事物隔离级别
- 删除dataGridview选中的一行或多行