集册 Java实例教程 从数据读取器读取数据并通过POST请求将其发送到服务器。

从数据读取器读取数据并通过POST请求将其发送到服务器。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

477
从数据读取器读取数据,并通过POST请求将其发布到服务器。


//package com.nowjava;
// from nowjava.com - 时代Java

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;


import java.io.Reader;

import java.io.Writer;

import java.net.HttpURLConnection;

import java.net.ProtocolException;

import java.net.URL;


public class Main {


    public static void postData(Reader data, URL endpoint, Writer output)

            throws Exception {

        HttpURLConnection urlc = null;

        try {

            urlc = (HttpURLConnection) endpoint.openConnection();
            /** from 
            N o w J a v a . c o m**/


            try {

                urlc.setRequestMethod("POST");

            } catch (ProtocolException e) {

                throw new Exception(

                        "Shouldn't happen: HttpURLConnection doesn't support POST??",

                        e);

            }


            urlc.setDoOutput(true);

            urlc.setDoInput(true);

            urlc.setUseCaches(false);

            urlc.setAllowUserInteraction(false);

            urlc.setRequestProperty("Content-type", "application/xml;"); //"text/xml; charset=" + "UTF-8");

            OutputStream out = urlc.getOutputStream();


            try {

                Writer writer = new OutputStreamWriter(out, "UTF-8");

                pipe(data, writer);

                writer.close();

            } catch (IOException e) {

                throw new Exception("IOException while posting data", e);

            } finally {

                if (out != null)

                    out.close();

            }

            InputStream in = urlc.getInputStream();


            try {

                Reader reader = new InputStreamReader(in);

                pipe(reader, output);

                reader.close();

            } catch (IOException e) {

                throw new Exception("IOException while reading response", e);

            } finally {

                if (in != null)

                    in.close();

            }

        } catch (IOException e) {

            throw new Exception("Connection error (is server running at "

                    + endpoint + " ?): " + e);

        } finally {

            if (urlc != null)

                urlc.disc
展开阅读全文