【Android基础知识】HttpUrlConnection使用doGet和doPost方式和服务器交互
来源:互联网 发布:域名后缀cc 编辑:程序博客网 时间:2024/05/01 01:58
这里介绍HttpUrlConnection使用get方式或post方式和服务器进行数据交互
1.建立服务器端Web程序MyServlet
在doGet方法中调用doPost方法,在doPost方法中接收客户端发送来的数据
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String name = request.getParameter("name");String age = request.getParameter("age");//response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.print("name ="+name+" age= "+age);//new String(name.getBytes("iso-8859-1"),"utf-8"); 转码System.out.println("name ="+name+" age= "+age);}创建一个Jsp表单
<body> <form action="MyServlet" method="get"> name:<input type="text" name = "name"/><br/> age: <input type="text" name = "age"/><br/> <input type="submit" value="submit"/> </form> </body>页面如下
发送一个请求后,服务器端返回请求的数据
2.使用Android客户端和服务器进行交互
网络请求线程类,分别使用doGet和doPost方法请求服务器
public class HttpThread extends Thread{String url;String age;String name;public HttpThread(String url,String age,String name){this.url = url;this.age = age;this.name = name;}private void doGet(){//get方式请求数据是在url中拼接的url = url+"?name="+name+"&age="+age;//URLEncoder.encode(name,"utf-8");//转码,防止中文乱码try {URL httpUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();conn.setReadTimeout(3000);conn.setRequestMethod("GET");BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));String str;StringBuffer sb = new StringBuffer();while((str = bufferedReader.readLine())!= null){sb.append(str);}Log.i("meng.li","result: "+sb.toString());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private void doPost(){Properties properties = System.getProperties();properties.list(System.out);try {URL httpUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();conn.setReadTimeout(3000);conn.setRequestMethod("POST");OutputStream out = conn.getOutputStream();String content = "name="+name+"&age="+age;out.write(content.getBytes());BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));String str;StringBuffer sb = new StringBuffer();while((str = bufferedReader.readLine())!= null){sb.append(str);}Log.i("meng.li","result: "+sb.toString());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}@Overridepublic void run() {doGet();//doPost();}}调用类
public class RegisteActivity extends Activity {private Button regist;private EditText name;private EditText age; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); name = (EditText)findViewById(R.id.name); age = (EditText)findViewById(R.id.age); regist = (Button)findViewById(R.id.submit); regist.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String url = "http://192.168.199.126:8080/Server/MyServlet";new HttpThread(url, age.getText().toString(), name.getText().toString()).start();}}); }}
0 0
- 【Android基础知识】HttpUrlConnection使用doGet和doPost方式和服务器交互
- HttpURLConnection 的doGet 和doPost
- android doGet和doPost
- HttpUrlConnection和HttpClient的使用(doGet( )、doPost( )方法)
- android doGet和doPost请求
- 浅谈doGet和doPost
- doGet 和 doPost区别
- day0812-doGet和doPost
- DoGet和DoPost
- doPost()和doGet()
- doGet和doPost
- doGet和doPost乱码
- doGet和doPost区别
- servlet(doget和dopost)
- doget和dopost区别
- service()和doGet()和doPost()
- Android客户端使用HttpURLConnection doGet与服务器数据交互简单示例
- dopost和doget的区别
- html5
- Redis 学习笔记二
- x11/extensions/XShm.h: No such file or directory 问题解决
- UDP丢包原因
- RTMPDump源代码分析 0: 主要函数调用分析
- 【Android基础知识】HttpUrlConnection使用doGet和doPost方式和服务器交互
- NEON汇编笔记
- 0712
- 菜鸟浅谈对于Adapter及AdapterView的理解
- cs231n - assignment1 - neural net 梯度推导
- swift 学习笔记四
- ACM集训day5
- 消除游戏解析
- HTML5 Video Events and API