zoukankan      html  css  js  c++  java
  • Http

    1.http请求中不可以存在空格

    2.

    package com.uwitec.util;

    import java.io.BufferedReader;
    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.InetSocketAddress;
    import java.net.Proxy;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Iterator;
    import java.util.Map;


    public class HttpRequestor {

    private String charset = "utf-8";
    private Integer connectTimeout = null;
    private Integer socketTimeout = null;
    private String proxyHost = null;
    private Integer proxyPort = null;

    /**
    * Do GET request
    * @param url
    * @return
    * @throws Exception
    * @throws IOException
    */
    public String doGet(String url) throws Exception {

    URL localURL = new URL(url);

    URLConnection connection = openConnection(localURL);
    HttpURLConnection httpURLConnection = (HttpURLConnection)connection;

    httpURLConnection.setRequestProperty("Accept-Charset", charset);
    httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

    InputStream inputStream = null;
    InputStreamReader inputStreamReader = null;
    BufferedReader reader = null;
    StringBuffer resultBuffer = new StringBuffer();
    String tempLine = null;

    if (httpURLConnection.getResponseCode() >= 300) {
    throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
    }

    try {
    inputStream = httpURLConnection.getInputStream();
    inputStreamReader = new InputStreamReader(inputStream);
    reader = new BufferedReader(inputStreamReader);

    while ((tempLine = reader.readLine()) != null) {
    resultBuffer.append(tempLine);
    }

    } finally {

    if (reader != null) {
    reader.close();
    }

    if (inputStreamReader != null) {
    inputStreamReader.close();
    }

    if (inputStream != null) {
    inputStream.close();
    }

    }

    return resultBuffer.toString();
    }

    /**
    * Do POST request
    * @param url
    * @param parameterMap
    * @return
    * @throws Exception
    */
    public String doPost(String url, Map parameterMap) throws Exception {

    /* Translate parameter map to parameter date string */
    StringBuffer parameterBuffer = new StringBuffer();
    if (parameterMap != null) {
    Iterator iterator = parameterMap.keySet().iterator();
    String key = null;
    String value = null;
    while (iterator.hasNext()) {
    key = (String)iterator.next();
    if (parameterMap.get(key) != null) {
    value = (String)parameterMap.get(key);
    } else {
    value = "";
    }

    parameterBuffer.append(key).append("=").append(value);
    if (iterator.hasNext()) {
    parameterBuffer.append("&");
    }
    }
    }

    System.out.println("POST parameter : " + parameterBuffer.toString());

    URL localURL = new URL(url);

    URLConnection connection = openConnection(localURL);
    HttpURLConnection httpURLConnection = (HttpURLConnection)connection;

    httpURLConnection.setDoOutput(true);
    httpURLConnection.setRequestMethod("POST");
    httpURLConnection.setRequestProperty("Accept-Charset", charset);
    httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length()));

    OutputStream outputStream = null;
    OutputStreamWriter outputStreamWriter = null;
    InputStream inputStream = null;
    InputStreamReader inputStreamReader = null;
    BufferedReader reader = null;
    StringBuffer resultBuffer = new StringBuffer();
    String tempLine = null;

    try {
    outputStream = httpURLConnection.getOutputStream();
    outputStreamWriter = new OutputStreamWriter(outputStream);

    outputStreamWriter.write(parameterBuffer.toString());
    outputStreamWriter.flush();

    if (httpURLConnection.getResponseCode() >= 300) {
    throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
    }

    inputStream = httpURLConnection.getInputStream();
    inputStreamReader = new InputStreamReader(inputStream);
    reader = new BufferedReader(inputStreamReader);

    while ((tempLine = reader.readLine()) != null) {
    resultBuffer.append(tempLine);
    }

    } finally {

    if (outputStreamWriter != null) {
    outputStreamWriter.close();
    }

    if (outputStream != null) {
    outputStream.close();
    }

    if (reader != null) {
    reader.close();
    }

    if (inputStreamReader != null) {
    inputStreamReader.close();
    }

    if (inputStream != null) {
    inputStream.close();
    }

    }

    return resultBuffer.toString();
    }

    private URLConnection openConnection(URL localURL) throws IOException {
    URLConnection connection;
    if (proxyHost != null && proxyPort != null) {
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
    connection = localURL.openConnection(proxy);
    } else {
    connection = localURL.openConnection();
    }
    return connection;
    }

    /**
    * Render request according setting
    * @param request
    */
    private void renderRequest(URLConnection connection) {

    if (connectTimeout != null) {
    connection.setConnectTimeout(connectTimeout);
    }

    if (socketTimeout != null) {
    connection.setReadTimeout(socketTimeout);
    }

    }

    /*
    * Getter & Setter
    */
    public Integer getConnectTimeout() {
    return connectTimeout;
    }

    public void setConnectTimeout(Integer connectTimeout) {
    this.connectTimeout = connectTimeout;
    }

    public Integer getSocketTimeout() {
    return socketTimeout;
    }

    public void setSocketTimeout(Integer socketTimeout) {
    this.socketTimeout = socketTimeout;
    }

    public String getProxyHost() {
    return proxyHost;
    }

    public void setProxyHost(String proxyHost) {
    this.proxyHost = proxyHost;
    }

    public Integer getProxyPort() {
    return proxyPort;
    }

    public void setProxyPort(Integer proxyPort) {
    this.proxyPort = proxyPort;
    }

    public String getCharset() {
    return charset;
    }

    public void setCharset(String charset) {
    this.charset = charset;
    }

    }

  • 相关阅读:
    Codeforces
    (水题)Codeforces
    【拓展欧几里得】方程的解
    洛谷P3216 [HNOI2011]数学作业
    洛谷P1719 最大加权矩形
    洛谷P1369 矩形
    洛谷 P1236 算24点
    洛谷P2014 选课
    洛谷 P1573 栈的操作
    洛谷P1531 I Hate It
  • 原文地址:https://www.cnblogs.com/jianyi12/p/5634199.html
Copyright © 2011-2022 走看看