首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

经过java模拟发送post数据

2012-07-18 
通过java模拟发送post数据public static String sendPost(String url, ListPostValue parameters) {Stri

通过java模拟发送post数据

public static String sendPost(String url, List<PostValue> parameters) {         String result = "";// 返回的结果         BufferedReader in = null;// 读取响应输入流         PrintWriter out = null;         StringBuffer sb = new StringBuffer();// 处理请求参数         String params = "";// 编码之后的参数         try {             // 编码请求参数             if(parameters.size() == 1){                for(PostValue p:parameters){                    sb.append(p.getKey()).append("=").append(p.getValue());                }                params = sb.toString();             }else{                for(PostValue p:parameters){                    sb.append(p.getKey()).append("=").append(p.getValue()).append("&");                }                String temp_params = sb.toString();                 params = temp_params.substring(0, temp_params.length() - 1);             }            // 创建URL对象             java.net.URL connURL = new java.net.URL(url);             // 打开URL连接             java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL                     .openConnection();             // 设置通用属性             httpConn.setRequestProperty("Accept", "*/*");             httpConn.setRequestProperty("Connection", "Keep-Alive");             httpConn.setRequestProperty("User-Agent",                     "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");             httpConn.setRequestProperty("Accept-Charset", "GBK");            httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=gbk");            // 设置POST方式             httpConn.setDoInput(true);             httpConn.setDoOutput(true);             // 获取HttpURLConnection对象对应的输出流             out = new PrintWriter(httpConn.getOutputStream());             // 发送请求参数             out.write(params);             // flush输出流的缓冲             out.flush();             // 定义BufferedReader输入流来读取URL的响应,设置编码方式             in = new BufferedReader(new InputStreamReader(httpConn                     .getInputStream(), "GBK"));             String line;             // 读取返回的内容             while ((line = in.readLine()) != null) {                 result += line+"\r\n";             }         } catch (Exception e) {             e.printStackTrace();         } finally {             try {                 if (out != null) {                     out.close();                 }                 if (in != null) {                     in.close();                 }             } catch (IOException ex) {                 ex.printStackTrace();             }         }         return result;     }  

?如果没有设置

 httpConn.setRequestProperty("Accept-Charset", "GBK");            httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=gbk");

? 的话,那么

out = new PrintWriter(httpConn.getOutputStream()); 提交到服务器端是以iso-8859-1的数据编码格式传递过去的那么我们只能通过new String(value.getBytes("iso-8859-1"),"gbk")来的到正确的数据内容

热点排行