Editar arquivo de texto em um servidor

3 respostas
nakrak

Criei uma classe que faz a leitura de arquivos de texto em um servidor web, e gostaria de saber se é possivel escrever no arquivo de texto seguindo mais ou menos a forma como é feita a leitura

segue um pedaco do codigo

url = new URL("endereco do servidor/teste.txt");
             
            Authenticator.setDefault(new ProxyAuthenticator(usuario, senhax));
            
            
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, porta));
                  
            URLConnection urlConn;
            if (proxy != null) {
                urlConn = url.openConnection(proxy);
            } else {
                urlConn = url.openConnection();
            }
              
            InputStreamReader imputStream = new InputStreamReader(urlConn.getInputStream());
            BufferedReader bufferReader = new BufferedReader(imputStream);
            String line = "";
            String line2 = "";
            while (line != null) {
                System.out.println(line);
                line  = bufferReader.readLine();
                line2+=""+line+" \n";
            }

3 Respostas

nakrak

enquanto espero e pesquiso por uma resposta tentei criar um script php que recebe a variavel via get
ele funciona

<?php
echo $_GET['msg'];
$fp = fopen("teste.txt", "a");
$escreve = fwrite($fp, $_GET["msg"]);
fclose($fp);

?>

o caso agora é enviar pelo java a variavel pela url

tentei assim

url = new URL("endereco do servidor/recebe.php?msg="+msg+"");

mas nao fucionou

alguma dica?

nakrak

achei uma informacao sobre URI

String uri = "http://servidor/recebe.php?msg="+msg+"";
         URI c=new URI(uri);

mas estou encontrando dificuldades pra utiliza-la com o proxy

é muito dificil achar qualquer coisa sobre conexao com proxy autenticado no java e este metodo que estou usando encontrei aqui mesmo no guj, o usuario Zell havia publicado em uma duvida sobre https com proxy

http://www.guj.com.br/java/12665-connecar-uma-url-via-https-com-autenticcao-em-proxy-de-saida

seria basicamente isso

url = new URL("http://servidor/teste.txt");
             
            Authenticator.setDefault(new ProxyAuthenticator(usuario, senhax));
            
            //No InetSocketAddress deve passar como parâmetro o host e porta do proxy.
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, porta));
                  
            URLConnection urlConn;
            if (proxy != null) {
                urlConn = url.openConnection(proxy);
            } else {
                urlConn = url.openConnection();
            }
             
              
            
            InputStreamReader imputStream = new InputStreamReader(urlConn.getInputStream());
            BufferedReader bufferReader = new BufferedReader(imputStream);
            String line = "";
            String line2 = "";
            while (line != null) {
                System.out.println(line);
                line  = bufferReader.readLine();
                line2+=""+line+" \n";
            }

no caso se eu substituir o url pela uri nao funcionaria

alguem tem alguma ideia???

nakrak

resolvido, estranho que quando posto as duvidas aqui é sempre eu que acabo me respondendo :stuck_out_tongue:

ai vai o codigo, ele acrecenta texto no teste.txt que esta num servidor, fazendo isso de dentro de uma rede com proxy autenticado

se alguem quiser o codigo completo me da um toque

String msg=jTextField1.getText();
         
            //enviar(msg);
        
        
        
        
        
             try {
			 
            url = new URL("http://servidor/recebe.php?msg="+msg+"");
             
            Authenticator.setDefault(new ProxyAuthenticator(usuario, senhax));
            
            //No InetSocketAddress deve passar como parâmetro o host e porta do proxy.
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, porta));
                  
            URLConnection urlConn;
            if (proxy != null) {
                urlConn = url.openConnection(proxy);
            } else {
                urlConn = url.openConnection();
            }
             
              
            
            InputStreamReader imputStream = new InputStreamReader(urlConn.getInputStream());
            BufferedReader bufferReader = new BufferedReader(imputStream);
            String line = "";
            String line2 = "";
            while (line != null) {
                System.out.println(line);
                line  = bufferReader.readLine();
                line2+=""+line+" \n";
            }
            //line = bufferReader.readLine();
             
            jTextArea1.setText(line2);
        } catch (MalformedURLException e) {
            JOptionPane.showMessageDialog(null, "Erro no endereço de atualizacao");
			
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Erro ao verificar atualizacoes ");
			
        }

essa é a classe proxy autenticator que roubei de outro post

import java.net.Authenticator;
import java.net.PasswordAuthentication;

public class ProxyAuthenticator extends Authenticator {

	private String user, password;

	public ProxyAuthenticator(String user, String password) {
		this.user = user;
		this.password = password;
	}

	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(user, password.toCharArray());
	}

}

obrigado a mim mesmo por responder com paciencia minhas proprias duvidas :smiley:

Criado 5 de setembro de 2014
Ultima resposta 5 de set. de 2014
Respostas 3
Participantes 1