JAVA发送post和get请求

来源:互联网 发布:linux运行fortran程序 编辑:程序博客网 时间:2024/06/05 09:52
 public static String doGet(String url) throws Exception{
    String result="";
             try {
             System.out.println("send get request:"+url);
                  URL restServiceURL = new URL(url);


                  HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();
                  httpConnection.setRequestMethod("GET");
                  httpConnection.setRequestProperty("Accept", "application/json");


                  if (httpConnection.getResponseCode() != 200) {
                         throw new RuntimeException("HTTP GET Request Failed with Error code : "
                                       + httpConnection.getResponseCode());
                  }


                  BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
                         (httpConnection.getInputStream())));


                  String output;
                 


                  while ((output = responseBuffer.readLine()) != null) {
                 result += output;
                  }


                  httpConnection.disconnect();


             } catch (MalformedURLException e) {
                  e.printStackTrace();
             } catch (IOException e) {
                  e.printStackTrace();
             }
             
             return result;
           }
    
    
    public static  String doPost(String url, Map<String, Object> params) throws Exception{
     PrintWriter out = null;
          BufferedReader in = null;
          String result = "";
          try {
              URL realUrl = new URL(url);
              // 打开和URL之间的连接
              URLConnection conn = realUrl.openConnection();
              // 设置通用的请求属性
              conn.setRequestProperty("accept", "*/*");
              conn.setRequestProperty("connection", "Keep-Alive");
              conn.setRequestProperty("user-agent",
                      "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
              // 发送POST请求必须设置如下两行
              conn.setDoOutput(true);
              conn.setDoInput(true);
              // 获取URLConnection对象对应的输出流
              out = new PrintWriter(conn.getOutputStream());
              // 发送请求参数
              StringBuffer sb = new StringBuffer();
              for(String key: params.keySet()){
             sb.append("&"+key+"="+params.get(key));
              }
              sb.deleteCharAt(0);
              out.print(sb);
              // flush输出流的缓冲
              out.flush();
              // 定义BufferedReader输入流来读取URL的响应
              in = new BufferedReader(
                      new InputStreamReader(conn.getInputStream()));
              String line;
              while ((line = in.readLine()) != null) {
                  result += line;
              }
          } catch (Exception e) {
              System.out.println("发送 POST 请求出现异常!"+e);
              e.printStackTrace();
          }
          //使用finally块来关闭输出流、输入流
          finally{
              try{
                  if(out!=null){
                      out.close();
                  }
                  if(in!=null){
                      in.close();
                  }
              }
              catch(IOException ex){
                  ex.printStackTrace();
              }
          }
          return result;


       } 
    
    
0 0
原创粉丝点击