GET请求:GET请求会向服务器发索取数据的请求,从而来获取信息,该请求就像数据库的select操做同样,只是用来查询一下数据,不会修改、增长数据,不会影响资源的内容,即该请求不会产生反作用。不管进行多少次操做,结果都是同样的。java
post请求:POST是向服务器端发送数据的,可是该请求会改变数据的种类等资源,就像数据库的insert操做同样,会建立新的内容。几乎目前全部的提交操做都是用POST请求的。数据库
javaCode:json
/** * 向指定URL发送GET方法的请求 * */ public static String get(String url) { BufferedReader in = null; try { URL realUrl = new URL(url); // 打开和URL之间的链接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); // 创建实际的链接 connection.connect(); // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer sb = new StringBuffer(); String line; while ((line = in.readLine()) != null) { sb.append(line); } return sb.toString(); } catch (Exception e) { LOG.error("Exception occur when send http get request!", e); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return null; }
/** * 发送HttpPost请求 * * @param strURL * 服务地址 * @param params * * @return 成功:返回json字符串<br/> */ public static String jsonPost(String strURL, Map<String, String> params) { try { URL url = new URL(strURL);// 建立链接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestMethod("POST"); // 设置请求方式 connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式 connection.connect(); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码 out.append(JSONUtil.object2JsonString(params)); out.flush(); out.close(); int code = connection.getResponseCode(); InputStream is = null; if (code == 200) { is = connection.getInputStream(); } else { is = connection.getErrorStream(); } // 读取响应 int length = (int) connection.getContentLength();// 获取长度 if (length != -1) { byte[] data = new byte[length]; byte[] temp = new byte[512]; int readLen = 0; int destPos = 0; while ((readLen = is.read(temp)) > 0) { System.arraycopy(temp, 0, data, destPos, readLen); destPos += readLen; } String result = new String(data, "UTF-8"); // utf-8编码 return result; } } catch (IOException e) { LOG.error("Exception occur when send http post request!", e); } return "error"; // 自定义错误信息 }