歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android入門:發送HTTP的GET和POST請求

HTTP的請求詳解在《Web資源訪問及HTTP協議詳解》中已經講解過: http://www.linuxidc.com/Linux/2012-07/66007.htm

相關閱讀:Android入門:用HttpClient模擬HTTP的GET和POST請求 http://www.linuxidc.com/Linux/2012-07/66008.htm

一、核心代碼
HTTP GET 核心代碼:
(1)String value = URLEncoder.encode(String value,"UTF-8");
(2)String path = "http://../path?key="+value;
(3)URL url = new URL(path);//此處的URL需要進行URL編碼;
(4)HttpURLConnection con = (HttpURLConnection)url.openConnection();
(5)con.setRequestMethod("GET");
(6)con.setDoOutput(true);
(7)OutputStream out = con.getOutputStream();
(8)out.write(byte[]buf);
(9)int code = con.getResponseCode();
HTTP POST 核心代碼:
(1)String value = URLEncoder.encode(String value,"UTF-8");
(2)byte[]buf = ("key="+value).getBytes("UTF-8");
(3)String path = "http://../path";
(4)URL url = new URL(path);//此處的URL需要進行URL編碼;
(5)HttpURLConnection con = (HttpURLConnection)url.openConnection();
(6)con.setRequestMethod("POST");
(7)con.setDoOutput(true);
(8)OutputStream out = con.getOutputStream();
(9)out.write(byte[]buf);
(10)int code = con.getResponseCode();

二、GET和POST亂碼解決方式
GET:
在doGet中加入:
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
POST:
在doPost中加入:
request.setCharacterEncoding("UTF-8");
詳情請看我的博文:http://www.linuxidc.com/Linux/2012-01/52742.htm

三、服務器端代碼

  1. package org.xiazdong.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.annotation.WebServlet;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. @WebServlet("/PrintServlet")  
  11. public class PrintServlet extends HttpServlet {  
  12.   
  13.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  14.         String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");  
  15.         String age = new String(request.getParameter("age").getBytes("ISO-8859-1"),"UTF-8");  
  16.         System.out.println("姓名:"+name+"\n年齡:"+age);  
  17.     }  
  18.   
  19.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  20.         request.setCharacterEncoding("UTF-8");  
  21.         System.out.println("姓名:"+request.getParameter("name")+"\n年齡:"+request.getParameter("age"));  
  22.     }  
  23. }  

Copyright © Linux教程網 All Rights Reserved