Передача текстовых данных на веб-сервер с использованием Java - PullRequest
1 голос
/ 05 февраля 2011

Я пытаюсь записать текстовый файл на моем веб-сервере с помощью HttpURLConnection.getOutputStream ().Я пробовал это на двух разных серверах, но безуспешно.

Я добавил FileWriter для проверки InputStream, и этот файл правильно создан в локальном каталоге, но в каталоге веб-сервера ничего не отображается, даже с отключенной защитой паролем.

Любая помощь будет принята с благодарностью.

URL url;
    try {
        url = new URL("http://www.myWebsite.com/myFile.txt");

           HttpURLConnection urlConnection = null;

            try {
                urlConnection = (HttpURLConnection) url.openConnection();


                try {
                    urlConnection.setDoOutput(true);
                    urlConnection.setDoInput(true);


                    OutputStream in = new BufferedOutputStream(urlConnection.getOutputStream());

                     InputStream fin1;
                        try {
                            fin1 = new FileInputStream(Environment.getExternalStorageDirectory() + "/fileToRead.txt");
                            FileWriter fWriter = new FileWriter(Environment.getExternalStorageDirectory() + "/fileToWrite.txt");

                            int data = fin1.read();
                            while(data != -1) {

                            fWriter.write(data);
                            in.write(data);
                              data = fin1.read();
                            }



                            fWriter.flush();
                            fWriter.close();

                            fin1.close();

                            in.flush();
                            in.close();

                        } catch (FileNotFoundException e31) {
                            // TODO Auto-generated catch block
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                    }
                   } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                                        }
                    finally {
                     urlConnection.disconnect();
                   }
            } catch (IOException e4) {
                                    // TODO Auto-generated catch block
                e4.printStackTrace();
            }
    } catch (MalformedURLException e4) {
        // TODO Auto-generated catch block
        e4.printStackTrace();
    }

Ответы [ 3 ]

1 голос
/ 05 февраля 2011

Вы должны вызвать getInputStream () для urlConnection, чтобы заставить выходной поток очистить сокет от удаленного сервера.

См. Обсуждение здесь: Почему вы должны вызыватьURLConnection # getInputStream для возможности записи в URLConnection # getOutputStream?

0 голосов
/ 05 февраля 2011

Вы также можете использовать Http-клиент Apache http://hc.apache.org/httpcomponents-client-ga/index.html

Гораздо проще, чем заставить работать URLConnection.

0 голосов
/ 05 февраля 2011

Вы ловите IOException (сразу после IOException), но ничего не делаете с ним. По крайней мере, напечатайте трассировку стека.

...