1、post(参数json格式)
try { //请求地址 URL urlHttp = new URL(StaticData.URL+"/condition/query_camera"); // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接 (标识一个url所引用的远程对象连接) HttpURLConnection connection = (HttpURLConnection) urlHttp.openConnection();// 此时cnnection只是为一个连接对象,待连接中 connection.setRequestProperty("session_id",session_id); // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数) connection.setDoOutput(true); // 设置连接输入流为true connection.setDoInput(true); // 设置请求方式为post connection.setRequestMethod("POST"); // post请求缓存设为false connection.setUseCaches(false); // 设置该HttpURLConnection实例是否自动执行重定向 connection.setInstanceFollowRedirects(true); // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数) // application/x-javascript text/xml->xml数据 application/x-javascript->json对象 application/x-www-form-urlencoded->表单数据 // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】 connection.setRequestProperty("Content-Type", "application/x-javascript;charset=utf-8"); // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行) connection.connect(); // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容) DataOutputStream dataout = new DataOutputStream(connection.getOutputStream()); /** * 设置参数 */ /*String conditionStr = "condition="+ condition; String orderStr = "&order="+ order; String startStr = "&start="+ start; String limitStr = "&limit="+ limit; String session_idStr = "&session_id="+ session_id; // 格式 parm = aaa=111&bbb=222&ccc=333&ddd=444 String parm = conditionStr + conditionStr + orderStr + startStr + limitStr + session_idStr;*/ /** * 设置参数:格式json */ Map map = new HashMap(); map.put("condition",condition); map.put("order",order); map.put("start",start); map.put("limit",limit); //转成json对象 String json = JSON.toJSONString(map); String parm = json; // 将参数输出到连接 dataout.writeBytes(parm); // 输出完成后刷新并关闭流 dataout.flush(); dataout.close(); // 重要且易忽略步骤 (关闭流,切记!) // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader) BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder sb = new StringBuilder(); // 用来存储响应数据 // 循环读取流,若不到结尾处 while ((line = bf.readLine()) != null) { sb.append(line).append(System.getProperty("line.separator")); } bf.close(); // 重要且易忽略步骤 (关闭流,切记!) connection.disconnect(); // 销毁连接 Map mapResult = (Map)JSON.parse(sb.toString() ); ApiResult apiResult = new ApiResult(true,mapResult); return apiResult; } catch (Exception e) { e.printStackTrace(); return new ApiResult(false,null); }
2、get(参数json格式)
try { URL url = new URL(StaticData.URL+"/repository"); // 把字符串转换为URL请求地址 HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 打开连接 connection.setRequestProperty("session_id",session_id); connection.connect();// 连接会话 // 获取输入流 BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { // 循环读取流 sb.append(line); } br.close();// 关闭流 connection.disconnect();// 断开连接 Map mapResult = (Map)JSON.parse(sb.toString() ); ApiResult apiResult = new ApiResult(true,mapResult); return apiResult; } catch (Exception e) { e.printStackTrace(); System.out.println("失败!"); return new ApiResult(false,null); }
3、post(参数非json格式)
try { //请求地址 URL urlHttp = new URL(StaticData.URL+"/condition/query_camera"); // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接 (标识一个url所引用的远程对象连接) HttpURLConnection connection = (HttpURLConnection) urlHttp.openConnection();// 此时cnnection只是为一个连接对象,待连接中 connection.setRequestProperty("session_id",session_id); // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数) connection.setDoOutput(true); // 设置连接输入流为true connection.setDoInput(true); // 设置请求方式为post connection.setRequestMethod("POST"); // post请求缓存设为false connection.setUseCaches(false); // 设置该HttpURLConnection实例是否自动执行重定向 connection.setInstanceFollowRedirects(true); // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数) // application/x-javascript text/xml->xml数据 application/x-javascript->json对象 application/x-www-form-urlencoded->表单数据 // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】 connection.setRequestProperty("Content-Type", "application/x-javascript;charset=utf-8"); // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行) connection.connect(); // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容) DataOutputStream dataout = new DataOutputStream(connection.getOutputStream()); /** * 设置参数 */ String conditionStr = "condition=" + condition; String orderStr = "&order=" + order; String startStr = "&start=" + start; String limitStr = "&limit=" + limit; String session_idStr = "&session_id=" + session_id; // 格式 parm = aaa=111&bbb=222&ccc=333&ddd=444 String parm = conditionStr + conditionStr + orderStr + startStr + limitStr + session_idStr; // 将参数输出到连接 dataout.writeBytes(parm); // 输出完成后刷新并关闭流 dataout.flush(); dataout.close(); // 重要且易忽略步骤 (关闭流,切记!) // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader) BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder sb = new StringBuilder(); // 用来存储响应数据 // 循环读取流,若不到结尾处 while ((line = bf.readLine()) != null) { sb.append(line).append(System.getProperty("line.separator")); } bf.close(); // 重要且易忽略步骤 (关闭流,切记!) connection.disconnect(); // 销毁连接 Map mapResult = (Map)JSON.parse(sb.toString() ); ApiResult apiResult = new ApiResult(true,mapResult); return apiResult; } catch (Exception e) { e.printStackTrace(); return new ApiResult(false,null); }