android客戶端與servlet伺服器互動簡單示例
阿新 • • 發佈:2019-02-17
前段時間需要寫一個能雙向解析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(); }
然後就可以互通訊息了。