zoukankan      html  css  js  c++  java
  • Java GET和POST请求

         从表面来看GET和POST请求:

        GET请求是在url后直接附上请求体,url和请求体之间用"?"分割,不同参数之间用"&"分隔,%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。

        POST把提交的数据则放置在是HTTP包的包体中,Post没有限制提交的数据。Post比Get安全,当数据是中文或者不敏感的数据,则用get,因为使用get,参数会显示在地址,对于敏感数据和不是中文字符的数据,则用post

    Java中get请求:

    package com.httpGetTest;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    public class HttpGetTest {
    
    	public static void main(String[] args) {
    
    		CreatHttpUrl creatUrl = new CreatHttpUrl();
    	    String url = CreatHttpUrl.creatUrl("teacher", "en", "zh-CHS");
    	    //System.out .print(url);
    	    
    	   // new readByGet().start();
    	    readData();
    	}
    	public static void readData()
    	{
    		try { 
    	    	CreatHttpUrl creatUrl = new CreatHttpUrl();
    		    String urlStr = CreatHttpUrl.creatUrl("teacher", "en", "zh-CHS");
    			URL url = new URL(urlStr);
    			URLConnection connection = url.openConnection();
    			InputStream is = connection.getInputStream();
    			InputStreamReader isr = new InputStreamReader(is);
    			BufferedReader bf = new BufferedReader(isr);
    			
    			String line;
    			StringBuilder builder = new StringBuilder();
    			while((line = bf.readLine()) != null)
    			{
    				builder.append(line);
    			}
    			
    			bf.close();
    			isr.close();
    			is.close();
    			
    			System.out.println(builder);
    			
    	    } catch (Exception e) {
    			e.printStackTrace();
    		}
    
    	}
    }
    

    Java中的post请求:

    package com.httpPostTest;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    public class HttpPostTest {
    
    	public static void main(String[] args) {
    
    		CreatHttpUrl creatUrl = new CreatHttpUrl();
    		String urlStr = "https://openapi.youdao.com/api";
    		String paramStr = creatUrl.createParam("good","en","zh-CHS");
    		
    		System.out.println(paramStr);
    		
    		try {
    			//设置请求相关设置
    			URL url = new URL(urlStr);
    			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    			connection.setRequestProperty("encoding", "UTF-8");
    			connection.setRequestMethod("POST");
    			connection.setDoInput(true);
    			connection.setDoOutput(true);
    			
    			//post提交数据
    			OutputStream os = connection.getOutputStream();
    			OutputStreamWriter osw = new OutputStreamWriter(os);
    			BufferedWriter writer = new BufferedWriter(osw);
    			
    			writer.write(paramStr);
    			writer.flush();
    			
    			//读取获取的数据
    			InputStream is = connection.getInputStream();
    			InputStreamReader isr = new InputStreamReader(is);
    			BufferedReader br = new BufferedReader(isr);
    			
    			String line;
    			StringBuilder builder = new StringBuilder();
    			while((line = br.readLine()) != null)
    			{
    				builder.append(line);
    			}
    			
    			writer.close();
    			osw.close();
    			os.close();
    			br.close();
    			isr.close();
    			is.close();
    			
    			
    			System.out.print(builder.toString());
    			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }
    
  • 相关阅读:
    Curling 2.0
    POJ
    免费馅饼
    每日一九度之 题目1090:路径打印
    每日一九度之 题目1089:数字反转
    每日一九度之 题目1084:整数拆分
    每日一九度之 题目1083:特殊乘法
    每日一九度之 题目1081:递推数列
    每日一九度之 题目1079:手机键盘
    每日一九度之 题目1077:最大序列和
  • 原文地址:https://www.cnblogs.com/dreamyu/p/6850732.html
Copyright © 2011-2022 走看看