sunrisetg 发表于 2013-2-7 15:32:20

Java向服务器发送POST请求

近期,在做一个客户端向服务器端传送本地文件的程序.于是用Applet读取本地的文件,将其流化后传送到服务器端,刚开始用的get方式,后考虑字符串过长时可能数据会被截取,于是改成post方式传输。遇到了一些小问题,于是解决后记录了下来。 /**   * 客户端代码   * 将数据用(POST)方式传送到服务器上   */public String sendToServer(String content) {       String urlPath = "http://127.0.0.1:8080/sunrise/test.do"; //服务器地址       StringBuffer sbf = new StringBuffer();       BufferedWriter writer = null;    BufferedReader reader = null;    HttpURLConnection uc = null;    try {         URL url = new URL(urlPath);         uc = (HttpURLConnection)url.openConnection();                  uc.setDoOutput(true);         writer = new BufferedWriter(         new OutputStreamWriter(uc.getOutputStream())); //向服务器传送数据         writer.write(content); //传送的数据            writer.flush();            writer.close();            reader = new BufferedReader(      new InputStreamReader(uc.getInputStream()));//读取服务器响应信息         String line;         while ((line = reader.readLine()) != null){               sbf.append(line);         }         reader.close();         uc.disconnect();       } catch (Exception e) {         sbf.append("服务器连接失败!请稍后重新操作");       } finally{       closeIO(writer,reader); //关闭流       }       return sbf.toString().trim();   }/** * 关闭流 */private void closeIO(BufferedWriter writer,BufferedReader reader){if (writer != null) {try {writer.close();writer = null;} catch (Exception e) {}}if (reader != null) {try {reader.close();reader = null;} catch (Exception e) {}}}/** * 服务器端代码 * 不要使用request.getParameter();因为该方法和 * request.getReader();和request.getInputStream(); * 方法冲突。 */@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");//注意加上BufferedReader reader = null;try {reader = request.getReader();//获得字符流StringBuffer content= new StringBuffer(); String line;    while ((line = reader.readLine()) != null){    content.append(line+"\r\n");    }    System.out.println(content.toString());} catch (Exception e) {}finally{try {reader.close();reader = null;} catch (Exception e) {}}}
页: [1]
查看完整版本: Java向服务器发送POST请求