1. 程式人生 > >android客戶端與servlet伺服器互動簡單示例

android客戶端與servlet伺服器互動簡單示例

前段時間需要寫一個能雙向解析XML的程式,但是客戶端只能從伺服器裡讀,但是死活傳不上去,倒騰了兩天終於搞好了。

下面直接貼示例程式碼,不明白的話再問吧。

這是android客戶端,記得得在AndroidManifest.xml檔案裡新增INTENET許可權。

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		//測試與伺服器互動資料
		try {
			String sendParam = getString(R.string.sendParam);//這要自己填傳輸的東西
			URL url = new URL(getString(R.string.add));//這要改成自己的URL地址

			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			HttpURLConnection.setFollowRedirects(true);
			con.setDoInput(true);
			con.setDoOutput(true);
			con.setRequestMethod("POST");	//設定為Post方法
			con.setRequestProperty("Content-Type", "multipart/form-data");	//這話似乎沒影響
			con.connect();

			//將資料傳送給伺服器
			OutputStream output = con.getOutputStream();
			output.write(sendParam.getBytes());
			output.flush();
			output.close();


			//接受伺服器傳送過來的資訊
			if (HttpURLConnection.HTTP_OK == con.getResponseCode()) {
				BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
				System.out.println("READ: "+in.readLine());
				in.close();
			}
		} catch (Exception e) {
			e.getStackTrace();
		}
	}

這是Servlet伺服器端的程式碼:
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");

		PrintWriter out = new PrintWriter(response.getOutputStream(), true);
		BufferedReader in = new BufferedReader(request.getReader());

		//讀取客戶端傳送的資料
		System.out.println(in.readLine());

		//返回給客戶端的應答訊息
		out.write("SEND BY SERVER");

		in.close();
		out.close();
	}

然後就可以互通訊息了。