android客戶端
package com.android.helloworld;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class ButtonDemo extends Activity{
private Button button;
private String username;
private String psw;
private EditText editText;
private EditText editText2;
public void onCreate(Bundle queding){
super.onCreate(queding);
/**
* 設置界面
/
setContentView(R.layout.activity_main);
/*
* 根據ID找到界面上的按鈕對象
/
button=(Button) findViewById(R.id.button1);
/*
* 為按鈕綁定點擊時間
*/
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/**
* 根據ID找到界面中的輸入框
*/
editText=(EditText) findViewById(R.id.editText1);
/**
* 根據ID找到界面中的輸入框
*/
editText2=(EditText) findViewById(R.id.editText2);
/**
* 把輸入框中的內容去除空格後獲得並且交給變量
*/
username=editText.getText().toString().trim();
/**
* 把輸入框中的內容去除空格後獲得並且交給變量
*/
psw=editText2.getText().toString().trim();
/**
* 構建需要傳輸的XML
*/
/**
* 將構建的XML轉化成字符串
*/
String xml="username"+username+"psw"+psw;
// /**
// * 打印日志
// /
// Log.i("得到數據", "用戶名"+username+"密碼"+psw);
/*
* 打印看獲得的數據和用戶輸入的數據是否一樣
/
System.out.println("用戶名"+username+"密碼"+psw);
try {
/*
* 服務器位置
/
URL url=new URL("http://127.0.0.1:8080/TestAndroid/1.do");
/*
* 打開一個服務器的連接
/
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
/*
* 設置超時時間 單位毫秒
/
connection.setConnectTimeout(5000);
/*
* 允許輸入
/
connection.setDoInput(true);
/*
* 允許輸出
/
connection.setDoOutput(true);
/*
* 設置不允許用緩存
/
connection.setUseCaches(false);
/*
* 設置請求方法
/
connection.setRequestMethod("POST");
/*
* 設置發送字符串的編碼格式
/
connection.setRequestProperty("Conten-Type", "text/xml;charset=UTF-8");
/*
* 通過IO流的方式發送數據給服務器
/
OutputStream outputStream=connection.getOutputStream();
/*
* 設置將XML轉化為字節的形式進行傳輸,編碼方式是UTF-8
/
outputStream.write(xml.getBytes("UTF-8"));
/*
* 將輸出流交給數據流發送
/
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
/*
* 將數據發送出去並且清空數據輸出流
/
dataOutputStream.flush();
/*
* 關閉輸出流並且釋放占用的資源空間
*/
dataOutputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
servlet端
package testservlet;
import java.io.BufferedInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// response.setContentType("text/xml;charset=utf-8");
// BufferedInputStream bufferedInputStream=new BufferedInputStream(request.getInputStream());
// byte[] bytes=new byte[1024*1024];
// int len=0;
// while((len=bufferedInputStream.read(bytes))!=-1){
// System.out.println(bytes);
// System.out.println(bytes.toString());
// }
// System.out.println(len);
System.out.println(111111);
}
}
有知道的告訴下怎麼才可以解決
謝謝了
QQ704532683
Android的網絡操作不能放在UI線程中,你的按鈕點擊事件就是發生在UI線程裡,你應該新開一個線程和Message來處理你請求Servlet,然後用Handler來接收處理線程的消息。