Android 以Http协议 使用get和post方式请求站点
来源:互联网 发布:mount windows共享目录 编辑:程序博客网 时间:2024/05/22 23:52
此文就是作为笔记使用,以防忘记,下面是全部代码:
此文请求的是web程序的一个servlet 定义了一个post和get方法 ,get方法传入的name和age,post传入的参数是name1和age1 。
你可以自己建一个简单的站点用于测试:
下面是我的servlet 主要代码:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=gbk");String name=request.getParameter("name").toString();String age=request.getParameter("age").toString();PrintWriter out = response.getWriter();out.print("你使用Get发送请求,你的名字是:"+name+",你的年龄是:"+age);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=gbk");String name=request.getParameter("name1").toString();String age=request.getParameter("age1").toString();PrintWriter out = response.getWriter();out.print("你使用Post发送请求,你的名字是:"+name+",你的年龄是:"+age);}
android main代码:
package ytbk.soft.activity;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;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.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 android.os.Bundle;import android.os.StrictMode;import android.annotation.SuppressLint;import android.app.Activity;import android.graphics.Path.FillType;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {private Button getButton = null;private Button postButton=null;private EditText name=null;private EditText age=null;private String baseUrl="http://192.168.10.86:8080/service/indexService";private HttpResponse response = null;private HttpEntity entity = null;@SuppressLint("NewApi")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mainactivity);//以下是android 4 版本以后,无法在主线程访问网络解决方法 如果你还是2系列的版本讲此代码去掉StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O.penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log.build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects() //探测SQLite数据库操作.penaltyLog() //打印logcat.penaltyDeath().build()); getButton=(Button)this.findViewById(R.id.getButton);postButton=(Button)this.findViewById(R.id.postButton);name=(EditText)this.findViewById(R.id.name);age=(EditText)this.findViewById(R.id.age);getButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String sname=name.getText().toString();String sage=age.getText().toString();String Url=baseUrl+"?name="+sname+"&age="+sage;HttpGet httpget=new HttpGet(Url);HttpClient client=new DefaultHttpClient();InputStream stream=null;try {response=client.execute(httpget);entity=response.getEntity();stream=entity.getContent();BufferedReader reder=new BufferedReader(new InputStreamReader(stream));String result="";String line="";while((line=reder.readLine())!=null){result=result+line;}System.out.println(result);} catch (Exception e) {System.out.println(e.getMessage()+"```````````````````````````````"+e.toString());}finally{try {stream.close();} catch (Exception e2) {e2.printStackTrace();}}}});postButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String sname=name.getText().toString();String sage=age.getText().toString();NameValuePair namevalue=new BasicNameValuePair("name1",sname);NameValuePair agevalue=new BasicNameValuePair("age1",sage);List<NameValuePair> list=new ArrayList<NameValuePair>();list.add(namevalue);list.add(agevalue);InputStream stream=null;try {HttpEntity entity=new UrlEncodedFormEntity(list);HttpPost post=new HttpPost(baseUrl);post.setEntity(entity);HttpClient client=new DefaultHttpClient();try {response=client.execute(post); //一定要注意此处,重新获取响应数据,否则你获取到的是你的url参数请求信息entity=response.getEntity();stream=entity.getContent();BufferedReader reder=new BufferedReader(new InputStreamReader(stream));String result="";String line="";while((line=reder.readLine())!=null){result=result+line;}System.out.println(result);} catch (Exception e) {System.out.println(e.getMessage()+"```````````````````````````````"+e.toString());}finally{try {stream.close();} catch (Exception e2) {e2.printStackTrace();}}} catch (Exception e) {e.printStackTrace();}finally{try {stream.close();} catch (Exception e2) {e2.printStackTrace();}}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
0 0
- Android 以Http协议 使用get和post方式请求站点
- HTTP协议请求方式:GET 和 POST区别
- HTTP协议的常见的请求方式:GET和POST
- Http协议 GET/POST请求方式
- android的http请求get和post请求方式
- Http协议(get请求和post请求)
- WebView的使用(http协议访问网络Get和Post请求方式)
- ajax以get和post方式请求
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- java使用post和get方式发送http请求
- http协议之get 和 post请求
- HTTP协议GET和POST请求对比
- 【JAVAWEB】--HTTP协议GET和POST请求
- 网络传输协议(http协议/请求和响应/get方式与post方式)
- HTTP 请求方式: GET和POST
- Http请求get和post方式
- MessageDigest小结
- CRC算法之一:介绍和原理
- loadrunner 集合点的并发数怎么设置
- iphone开发 支付宝 报错 rsa_private read error : private key is NULL解决方法
- Struts2 action中获取session,request对象的方法
- Android 以Http协议 使用get和post方式请求站点
- MySQL数据库备份命令
- logback 配置详解(一)<configuration> and <logger>
- RTP/RTCP(二)-H.264 视频 RTP 负载格式
- java 从零开始,学习笔记之基础入门<DOM解析>(三十二)
- oracle 大数据量下的分页解决方法【截取ID法】
- web-service各框架额外限制积累
- block 内部结构分解
- HttpClient---NameValuePair参数问题