zoukankan      html  css  js  c++  java
  • JAVA使用原始HttpURLConnection发送POST数据

    package com.newflypig.demo;
    /**
     * 使用jdk自带的HttpURLConnection向URL发送POST请求并输出响应结果
     * 参数使用流传递,并且硬编码为字符串"name=XXX"的格式
     */
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    
    public class SendPostDemo {
    
    	public static void main(String[] args) throws Exception{
    		String urlPath = new String("http://localhost:8080/Test1/HelloWorld");   
    		//String urlPath = new String("http://localhost:8080/Test1/HelloWorld?name=丁丁".getBytes("UTF-8"));
    		
    		
    		String param="name="+URLEncoder.encode("丁丁","UTF-8");
    		
    		//建立连接
    		URL url=new URL(urlPath);
    		HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();
    		
    		//设置参数
    		httpConn.setDoOutput(true);		//需要输出
    		httpConn.setDoInput(true);		//需要输入
    		httpConn.setUseCaches(false); 	//不允许缓存
    		httpConn.setRequestMethod("POST"); 		//设置POST方式连接
    		
    		//设置请求属性
    		httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    		httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
    		httpConn.setRequestProperty("Charset", "UTF-8");
    		
    		//连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect
    		httpConn.connect();
    			
    		//建立输入流,向指向的URL传入参数
    		DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream());
    		dos.writeBytes(param);
    		dos.flush();
    		dos.close();
    		
    		//获得响应状态
    		int resultCode=httpConn.getResponseCode();
    		if(HttpURLConnection.HTTP_OK==resultCode){
    			StringBuffer sb=new StringBuffer();
    			String readLine=new String();
    			BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
    			while((readLine=responseReader.readLine())!=null){
    				sb.append(readLine).append("\n");
    			}
    			responseReader.close();
    			System.out.println(sb.toString());
    		}	
    	}
    }
    

      

    JAVA使用HttpURLConnection发送POST数据是依靠OutputStream流的形式发送

    具体编码过程中,参数是以字符串“name=XXX”这种形式发送

    保持着对万物的好奇心。即使是玩游戏,也要停下来想想这是怎么实现的。
  • 相关阅读:
    关于Tomcat的那些事儿(一)
    关于Spring的问题(一)
    关于Spring的@RequestBody的使用
    关于Eclipse切换所有分支
    关于使用BetterIntelliJ激活IntelliJ IDEA
    关于Elasticsearch的问题(一)
    关于Elasticsearch那些事
    关于LRU算法及Java实现
    自定义滚动条
    创建型模式之建造者模式
  • 原文地址:https://www.cnblogs.com/newflydd/p/4891809.html
Copyright © 2011-2022 走看看