0

I'm using a function called UploadFFGS and this is its content:

URL url = new URL("http://linkedme.com/filebet.txt");
        URLConnection ucn = url.openConnection();
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection = (HttpURLConnection) url.openConnection();

        FileInputStream is = new FileInputStream("filebet.txt"); //before I download the same file because I must edit it and upload the new version
        OutputStream ostream = connection.getOutputStream();
        PrintWriter pwriter = new PrintWriter(ostream);

        pwriter.print(jTextArea1.getText());
        pwriter.close();

This program never uploads the file filebet I have on my desktop to my link (http://linkedme.com/filebet.txt). Any ideas? I call it in this way:

         try {

         UploadFFGS();
         } 
          catch (MalformedURLException ex) {
            Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex);
        }

Also, NetBeans gives me this error: "java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true)".

4

2 回答 2

2

您的方法不起作用,因为您的 API 端点(很可能)是常规文件而不是解释脚本。端点必须提供一个 API,您可以通过该 API 上传文件(POST/PUT 等)。

于 2013-07-28T23:21:29.683 回答
0

我有一个不同的解决方案。也许这对某人有用。只需在您的网络浏览器中查看您的高级代理设置。我们公司的系统工程师更改了代理设置,但我不知道。这个错误花了我 3 个工作日。我在公司编写 ftp 上传项目时遇到了这个doOutput错误。我尝试了所有方法,例如添加conn.setDoOutput(true)类似解决方案或“五十种色调”,但没有一个能救我。但是,在我将代理设置更改为正确设置后,错误消失了,现在我可以使用 java 中的 urlConnection 通过 ftp 上传我的文件。我使用下面链接中的代码进行上传过程,除了主机、端口、用户和密码之外没有添加任何内容。 http://www.ajaxapp.com/2009/02/21/a-simple-java-ftp-connection-file-download-and-upload/

于 2015-05-21T08:05:52.427 回答