Android 以Http协议 使用get和post方式请求站点
2013-12-10 10:32
525 查看
此文就是作为笔记使用,以防忘记,下面是全部代码:
此文请求的是web程序的一个servlet 定义了一个post和get方法 ,get方法传入的name和age,post传入的参数是name1和age1 。
你可以自己建一个简单的站点用于测试:
下面是我的servlet 主要代码:
android main代码:
此文请求的是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") @Override protected 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() { @Override public 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() { @Override public 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(); } } } }); } @Override public 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; } }
相关文章推荐
- android之使用get和post方式向服务器提交请求
- GET与POST比较-使用HTTP协议将客户端的请求传送到服务器端的两种方式
- Android使用HttpClient完成Post和Get方式的联网请求
- android之使用get和post方式向服务器提交请求
- WebView的使用(http协议访问网络Get和Post请求方式)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- android之使用get和post方式向服务器提交请求
- android之使用get和post方式向服务器提交请求
- Android 网络请求方式之HttpClient,GET,POST,PUT请求使用方法
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android 网络请求方式之HttpClient,GET,POST,PUT请求使用方法
- java使用Post和Get方式提交Http请求通用
- Android HttpClient GET或者POST请求基本使用方法
- android中使用get、post和HttpClient方式与服务器交互
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- Android 使用HTTP(get和post)方式登陆服务器
- android中HTTP协议访问网络及其方式及其http的GET和POST的优缺点
- android 向服务器Get和Post请求的两种方式,android向服务器发送文件,自己组装协议和借助第三方开源