【向Internet发送请求参数】
利用HttpURLConnection对象,我们可以向网络发送请求参数.
String requestUrl = "";Map<String, String> requestParams = new HashMap<String, String>();requestParams.put("age", "12");requestParams.put("name", "中国"); StringBuilder params = new StringBuilder();for(Map.Entry<String, String> entry : requestParams.entrySet()){ params.append(entry.getKey()); params.append("="); params.append(URLEncoder.encode(entry.getValue(), "UTF-8")); params.append("&");}if (params.length() > 0) params.deleteCharAt(params.length() - 1);byte[] data = params.toString().getBytes();URL realUrl = new URL(requestUrl);HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();conn.setDoOutput(true);//发送POST请求必须设置允许输出conn.setUseCaches(false);//不使用Cacheconn.setRequestMethod("POST"); conn.setRequestProperty("Content-Length", String.valueOf(data.length));conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());outStream.write(data);outStream.flush();if( conn.getResponseCode() == 200 ){ String result = readAsString(conn.getInputStream(), "UTF-8"); outStream.close(); System.out.println(result);}//---------------------------
利用HttpURLConnection对象,我们可以向网络发送xml数据.
StringBuilder xml = new StringBuilder();xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");xml.append("<M1 V=10000>");xml.append("<U I=1 D=\"N73\">中国</U>");xml.append("</M1>");byte[] xmlbyte = xml.toString().getBytes("UTF-8");URL url = new URL("");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5* 1000);conn.setDoOutput(true);//允许输出conn.setUseCaches(false);//不使用Cacheconn.setRequestMethod("POST"); conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());outStream.write(xmlbyte);//发送xml数据outStream.flush();if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");InputStream is = conn.getInputStream();//获取返回数据String result = readAsString(is, "UTF-8");outStream.close();//---------------------------------------------------