Here you can find the source of httpPost(final String httpurl, final String data, final Map
Parameter | Description |
---|---|
httpurl | target url |
data | String with content to post |
requestProperties | optional http header fields (key->value) |
Parameter | Description |
---|---|
IOException | an exception |
@SuppressWarnings("resource") public static InputStream httpPost(final String httpurl, final String data, final Map<String, String>... requestProperties) throws IOException
//package com.java2s; /**// w w w .j a va 2s .co m * Copyright 2013 Sven Ewald * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.util.Map; import java.util.Map.Entry; public class Main { /** * Simple http post implementation. Supports HTTP Basic authentication via request properties. * You may want to use {@link #createBasicAuthenticationProperty} to add authentication. * * @param httpurl * target url * @param data * String with content to post * @param requestProperties * optional http header fields (key->value) * @return input stream of response * @throws IOException */ @SuppressWarnings("resource") public static InputStream httpPost(final String httpurl, final String data, final Map<String, String>... requestProperties) throws IOException { byte[] bytes = data.getBytes("utf-8"); java.net.URL url = new java.net.URL(httpurl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestMethod("POST"); connection.setRequestProperty("charset", "utf-8"); connection.setRequestProperty("Content-Length", Integer.toString(bytes.length)); for (Map<String, String> props : requestProperties) { addRequestProperties(props, connection); } OutputStream outputStream = connection.getOutputStream(); outputStream.write(bytes); outputStream.flush(); return connection.getInputStream(); } /** * Copies request properties to a connection. * * @param requestProperties * (if null, connection will not be changed) * @param connection */ private static void addRequestProperties(final Map<String, String> requestProperties, final HttpURLConnection connection) { if (requestProperties != null) { for (Entry<String, String> entry : requestProperties.entrySet()) { connection.addRequestProperty(entry.getKey(), entry.getValue()); } } } }