阅读背景:

HttpURLConnection 向服务器发送post和get请求 并接收响应

来源:互联网 

以下是post方法提交,有一些我测试时的参数

package com.busymonkey;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Uploadvalue
 */
public class Uploadvalue extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Uploadvalue() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		URL postUrl = new URL("https://10.19.155.230:8080/cloudStore/letv/video.upload.init");  
        // 打开连接  
        HttpURLConnection connection = (HttpURLConnection) postUrl  
                .openConnection();  
        // Output to the connection. Default is  
        // false, set to true because post  
        // method must write something to the  
        // connection  
        // 设置是否向connection输出,因为这个是post请求,参数要放在  
        // http正文内,因此需要设为true  
        connection.setDoOutput(true);  
        // Read from the connection. Default is true.  
        connection.setDoInput(true);  
        // Set the post method. Default is GET  
        connection.setRequestMethod("POST");  
        // Post cannot use caches  
        // Post 请求不能使用缓存  
        connection.setUseCaches(false);  
        // This method takes effects to  
        // every instances of this class.  
        // URLConnection.setFollowRedirects是static函数,作用于所有的URLConnection对象。  
        // connection.setFollowRedirects(true);  
  
        // This methods only  
        // takes effacts to this  
        // instance.  
        // URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数  
        connection.setInstanceFollowRedirects(true);  
        // Set the content type to urlencoded,  
        // because we will write  
        // some URL-encoded content to the  
        // connection. Settings above must be set before connect!  
        // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的  
        // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode  
        // 进行编码  
        connection.setRequestProperty("Content-Type",  
                "application/x-www-form-urlencoded");  
        // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,  
        // 要注意的是connection.getOutputStream会隐含的进行connect。  
        connection.connect();  
        DataOutputStream out = new DataOutputStream(connection  
                .getOutputStream());  
        // The URL-encoded contend  
        // 正文,正文内容其实跟get的URL中'?'后的参数字符串一致  
        String content = "video_name=" + URLEncoder.encode("12000569", "utf-8")
					   +"&"+ "client_ip=" + URLEncoder.encode("192.168.1.5", "utf-8")
					   +"&"+ "file_size=" + URLEncoder.encode("123321", "utf-8");  
        // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面  
        out.writeBytes(content);   
  
        out.flush();  
        out.close(); // flush and close  
        BufferedReader reader = new BufferedReader(new InputStreamReader(  
                connection.getInputStream()));  
        String line;  
        System.out.println("=============================");  
        System.out.println("Contents of post request");  
        System.out.println("=============================");  
        while ((line = reader.readLine()) != null) {  
            System.out.println(line);  
        }  
        System.out.println("=============================");  
        System.out.println("Contents of post request ends");  
        System.out.println("=============================");  
        reader.close();  
        connection.disconnect();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package com.busymon



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: