Android入门三 Http通信(实例)
16lz
2021-01-23
android 采用的是服务端和客户端的形式进行通信.
服务端
通常是一个servlet.
package com.sjming.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class MyServlet */public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public MyServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //this.doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String age = request.getParameter("age"); PrintWriter out = response.getWriter(); out.println("name="+name+" age="+age); System.out.println("name="+name+" age="+age); }}
客户端
RegisterActivity
package com.example.sujinming.qumiao;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class RegisterActivity extends Activity { private EditText name; private EditText age; private Button register; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); name = (EditText) findViewById(R.id.name); age = (EditText)findViewById(R.id.age); register = (Button)findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url = "http://118.202.40.18:8080/Serve/MyServlet"; new HttpThread(url, name.getText().toString(), age.getText().toString()).start(); } }); }}
HttpThread
package com.example.sujinming.qumiao;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;public class HttpThread extends Thread{ String url; String name; String age; public HttpThread(String url, String name, String age){ this.url = url; this.name = name; this.age = age; } private void doGet(){ url = url+"?name="+name+"&age="+age; try { URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String str; StringBuffer sb = new StringBuffer(); while((str = reader.readLine()) != null) { sb.append(str); } System.out.println("result:"+sb.toString()); } catch (Exception e) { e.printStackTrace(); } } private void doPost(){ try { URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5000); OutputStream out = conn.getOutputStream(); String content = "name="+name+"&age="+age; out.write(content.getBytes()); //get the inf form serve BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuffer sb = new StringBuffer(); String str; while((str = reader.readLine()) != null) { sb.append(str); } System.out.println("result:"+sb.toString()); } catch (IOException e) { e.printStackTrace(); } } @Override public void run() { //doGet(); doPost(); }}
更多相关文章
- Android腾讯微博客户端开发四:微博发送篇(QQ表情,@搜索)
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConn
- Android客户端与服务端通信乱码问题的解决
- 服务端和Android客户端利用Socket传输JSON数据
- 利用半透明对话框实现新浪微博android客户端首次运行时的提示界
- Android使用okhttp框架实现带参数Get和Post请求(附服务端完整代码