zoukankan      html  css  js  c++  java
  • JAVA HttpURLConnect

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    //import java.net.MalformedURLException;
    import java.net.URL;
    //import java.net.URLEncoder;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    //import com.alibaba.druid.support.logging.Log;
    
    public class HttpURLConnect {
    	@Autowired
    	// 修改
    	@RequestMapping(value = "put/{method}", method = RequestMethod.PUT)
    	public @ResponseBody String put(@PathVariable String mothed) {
    		return "put:" + mothed;
    	}
    
    	// 新增
    	@RequestMapping(value = "post/{method}", method = RequestMethod.POST)
    	public @ResponseBody String post(@PathVariable String mothed, String id, String name) {
    		System.out.println("id:" + id);
    		System.out.println("name:" + name);
    		return "post:" + mothed;
    	}
    
    	// 删除
    	@RequestMapping(value = "delete/{method}", method = RequestMethod.DELETE)
    	public @ResponseBody String delete(@PathVariable String mothed) {
    		return "delete:" + mothed;
    	}
    
    	// 查找
    	@RequestMapping(value = "get/{method}", method = RequestMethod.GET)
    	public @ResponseBody String get(@PathVariable String mothed) {
    		return "get:" + mothed;
    	}
    	
    	// HttpURLConnection 调用Restful接口
    	@RequestMapping(value = "dealCon/{method}")
    	public @ResponseBody String dealCon(@PathVariable String url, String param, String session) throws IOException {
    		StringBuilder sb = new StringBuilder();   
    		URL restServiceURL = new URL(url);
    		HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();
    		httpConnection.setRequestProperty("Cookie", session);
    		// method 输入小写,转换成 GET POST DELETE PUT
    //		 httpConnection.setRequestProperty("Accept", "application/json");
    		if (param == null) {
    			httpConnection.connect();
    		}
    		else {
    			// 打开输出开关
    			httpConnection.setRequestMethod("POST");
    			httpConnection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
    //			httpConnection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
    			httpConnection.setRequestProperty("Accept", "application/json, text/plain, */*");
    			httpConnection.setDoOutput(true);
    			httpConnection.connect();
    			
    			// 传递参数,获取HttpURLConnection对象的输出流
    			OutputStream outputStream = httpConnection.getOutputStream();
    			//请求参数发送
    			outputStream.write(param.getBytes());
    		    // flush输出流的缓冲
    			outputStream.flush();
    		}
    		if (httpConnection.getResponseCode() != 200) {
    			throw new RuntimeException("HTTP GET Request Failed with Error code : " + httpConnection.getResponseCode());
    		}
    		//定义BufferedReader输入流来读取URL的响应
    		BufferedReader responseBuffer = new BufferedReader(new InputStreamReader((httpConnection.getInputStream())));
    		System.out.println("Output from Server:  
    ");
    		String output;
    		while ((output = responseBuffer.readLine()) != null) {
    			System.out.println(output);
    			sb.append(output);
    			System.out.println("=============");
    		}
    		httpConnection.disconnect();
    		return sb.toString();
    	}
    
    	/**
    	 * post方式登录
    	 * 
    	 * @param username
    	 * @param password
    	 * @param loginAction
    	 * @return
    	 * @throws Exception
    	 */
    	public String getCookie(String urlLogin, String accountInfo) throws Exception {
    		// 登录
    		URL url = new URL(urlLogin);
    		// String param = "username="+username+"&password="+password;
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
    
    		conn.setDoInput(true);
    		conn.setDoOutput(true);
    		conn.setRequestMethod("POST");
    		OutputStream out = conn.getOutputStream();
    		out.write(accountInfo.getBytes());
    		out.flush();
    		out.close();
    		String sessionId = "";
    		String cookieVal = "";
    		String key = null;
    		// 取cookie
    		for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) {
    			if (key.equalsIgnoreCase("Set-Cookie")) {
    				cookieVal = conn.getHeaderField(i);
    				cookieVal = cookieVal.substring(0, cookieVal.indexOf(";"));
    				sessionId = sessionId + cookieVal + ";";
    				System.out.println("sessionId======" + sessionId);
    			}
    		}
    		return sessionId;
    	}
    }
    

      

  • 相关阅读:
    Ilya Muromets(DP or 思维)
    2018 焦作网络赛 L Poor God Water ( AC自动机构造矩阵、BM求线性递推、手动构造矩阵、矩阵快速幂 )
    上下界的网络流模板
    计蒜客 2018南京网络赛 I Skr ( 回文树 )
    回文树 / 自动机模板
    Nowcoder 练习赛26 D xor序列 ( 线性基 )
    线性基模板
    Tarjan求强连通分量、求桥和割点模板
    Nowcoder 挑战赛23 B 游戏 ( NIM博弈、SG函数打表 )
    第二类斯特林数模板
  • 原文地址:https://www.cnblogs.com/by170628/p/8134568.html
Copyright © 2011-2022 走看看