postmethod.java

来自「这是linux下ssl vpn的实现程序」· Java 代码 · 共 54 行

JAVA
54
字号
package com.maverick.http;

import java.io.IOException;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.Vector;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class PostMethod extends HttpMethod {

    public PostMethod(String uri) {
        super("POST", uri);
    }

    public HttpResponse execute(HttpRequest request, HttpConnection con) throws IOException {

      request.setHeaderField("Host", con.getHost());
      request.setHeaderField("User-Agent",  HttpClient.USER_AGENT);

        // Prepare request body
        String encodedParams = "";
        for (Enumeration e = parameters.keys(); e.hasMoreElements(); ) {
            String name = (String) e.nextElement();
            Vector values = (Vector) parameters.get(name);
            for(Enumeration e2 = values.elements();e2.hasMoreElements();) {
                String value = (String) e2.nextElement();
                encodedParams += (encodedParams.length() > 0 ? "&" : "") + URLEncoder.encode(name) + "=" +
                    URLEncoder.encode(value);
            }
        }

        byte[] body = encodedParams.getBytes();
        request.setHeaderField("Content-Type", "application/x-www-form-urlencoded");
        request.setHeaderField("Content-Length", String.valueOf(body.length));

        request.performRequest(this, con);

        con.getOutputStream().write(body);

        return new HttpResponse(con);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?