服务器何如向Android前台发送数据,Android开发使用POST方式向服务器请求和发送数据...

package com.wzw.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class LoginServlet

*/

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public LoginServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String username=request.getParameter("username");

String password=request.getParameter("password");

if(username.equals("admin")&&password.equals("123456")){

response.getWriter().println("success");

}else{

response.getWriter().println("failed");

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

this.doGet(request,response);

}

}

#2.布局文件也很简单

#3在mainactivity中实现方法

package com.wzw.submitdata;

import com.wzw.submitdata.utils.NetUtil;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

private EditText etUsername;

private EditText etPassword;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

etUsername = (EditText) findViewById(R.id.et_username);

etPassword = (EditText) findViewById(R.id.et_password);

}

public void doGet(View v){

final String username=etUsername.getText().toString();

final String password=etPassword.getText().toString();

new Thread(new Runnable() {

@Override

public void run() {

//访问网络要在子线程中实现,使用get取数据

final String state=NetUtil.loginOfGet(username, password);

//执行在主线程上

runOnUiThread(new Runnable() {

public void run() {

//就是在主线程上操作,弹出结果

Toast.makeText(MainActivity.this, state, 0).show();

}

});

}

}).start();

}

public void doPost(View v){

final String username=etUsername.getText().toString();

final String password=etPassword.getText().toString();

new Thread(new Runnable() {

@Override

public void run() {

final String state=NetUtil.LoginOfPost(username, password);

//执行在主线程上

runOnUiThread(new Runnable() {

public void run() {

//就是在主线程上操作,弹出结果

Toast.makeText(MainActivity.this, state, 0).show();

}

});

}

}).start();

}

}

#4.具体处理GET和POST的方法

package com.wzw.submitdata.utils;

import java.io.ByteArrayOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

public class NetUtil {

/**

* 使用GET访问去访问网络

* @param username

* @param password

* @return 服务器返回的结果

*/

public static String loginOfGet(String username,String password){

HttpURLConnection conn=null;

try {

String data="username="+username+"&password="+password;

URL url=new URL("http://192.168.1.4:8080/AndroidServer/LoginServlet?"+data);

conn=(HttpURLConnection) url.openConnection();

conn.setRequestMethod("GET");

conn.setConnectTimeout(10000);

conn.setReadTimeout(5000);

conn.connect();

int code=conn.getResponseCode();

if(code==200){

InputStream is=conn.getInputStream();

String state=getStringFromInputStream(is);

return state;

}

} catch (Exception e) {

e.printStackTrace();

}finally{

if(conn!=null){

conn.disconnect();

}

}

return null;

}

/**

* 使用POST访问去访问网络

* @param username

* @param password

* @return

*/

public static String LoginOfPost(String username,String password){

HttpURLConnection conn=null;

try {

URL url=new URL("http://192.168.1.4:8080/AndroidServer/LoginServlet");

conn=(HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");

conn.setConnectTimeout(10000);

conn.setReadTimeout(5000);

conn.setDoOutput(true);

//post请求的参数

String data="username="+username+"&password="+password;

OutputStream out=conn.getOutputStream();

out.write(data.getBytes());

out.flush();

out.close();

conn.connect();

int code=conn.getResponseCode();

if(code==200){

InputStream is=conn.getInputStream();

String state=getStringFromInputStream(is);

return state;

}

} catch (Exception e) {

e.printStackTrace();

}finally{

if(conn!=null){

conn.disconnect();

}

}

return null;

}

/**

* 根据输入流返回一个字符串

* @param is

* @return

* @throws Exception

*/

private static String getStringFromInputStream(InputStream is) throws Exception{

ByteArrayOutputStream baos=new ByteArrayOutputStream();

byte[] buff=new byte[1024];

int len=-1;

while((len=is.read(buff))!=-1){

baos.write(buff, 0, len);

}

is.close();

String html=baos.toString();

baos.close();

return html;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值