首页 > 代码库 > Http 以post方式获取数据
Http 以post方式获取数据
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; public class HttpUtils { // 请求服务器端的url private static String PATH = "http://192.168.0.102:8080/myhttp/servlet/LoginAction"; private static URL url; public HttpUtils() { // TODO Auto-generated constructor stub } static { try { url = new URL(PATH); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param params * 填写的url的参数 * @param encode * 字节编码 * @return */ public static String sendPostMessage(Map<String, String> params, String encode) { // 作为StringBuffer初始化的字符串 StringBuffer buffer = new StringBuffer(); try { if (params != null && !params.isEmpty()) { for (Map.Entry<String, String> entry : params.entrySet()) { // 完成转码操作 buffer.append(entry.getKey()).append("=").append( URLEncoder.encode(entry.getValue(), encode)) .append("&"); } buffer.deleteCharAt(buffer.length() - 1); } // System.out.println(buffer.toString()); // 删除掉最有一个& System.out.println("-->>"+buffer.toString()); HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.setConnectTimeout(3000); urlConnection.setRequestMethod("POST"); urlConnection.setDoInput(true);// 表示从服务器获取数据 urlConnection.setDoOutput(true);// 表示向服务器写数据 // 获得上传信息的字节大小以及长度 byte[] mydata = http://www.mamicode.com/buffer.toString().getBytes();"Content-Type", "application/x-www-form-urlencoded"); urlConnection.setRequestProperty("Content-Length", String.valueOf(mydata.length)); // 获得输出流,向服务器输出数据 OutputStream outputStream = urlConnection.getOutputStream(); outputStream.write(mydata,0,mydata.length); outputStream.close(); // 获得服务器响应的结果和状态码 int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { return changeInputStream(urlConnection.getInputStream(), encode); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } /** * 将一个输入流转换成指定编码的字符串 * * @param inputStream * @param encode * @return */ private static String changeInputStream(InputStream inputStream, String encode) { // TODO Auto-generated method stub ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] data = http://www.mamicode.com/new byte[1024];""; if (inputStream != null) { try { while ((len = inputStream.read(data)) != -1) { outputStream.write(data, 0, len); } result = new String(outputStream.toByteArray(), encode); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return result; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> params = new HashMap<String, String>(); params.put("username", "admin"); params.put("password", "1234"); String result = HttpUtils.sendPostMessage(params, "utf-8"); System.out.println("--result->>" + result); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。