Passando pelo Proxy

8 respostas
RodrigoSol

Não estou conseguindo fazer o download no site da sun do Java Commerce™ Toolkit.

Então Preciso obter uma URL passando por um proxy que utiliza senha sem utilizar a classe javax.commerce.util.BASE64Encoder.

Tentei trocar a javax.commerce.util.BASE64Encoder por sun.misc.BASE64Encoder:

import java.io.*;
import java.net.*;
import sun.misc.BASE64Encoder; 

public class PassProxy {

  public PassProxy(String proxyhost, String proxyport, String proxylogin,  String proxypass, String url) {

	/* Set the proxy server host and port */
	System.setProperty("http.proxyHost", proxyhost);
	System.setProperty("http.proxyPort", proxyport);

	/* Set up and encode the proxy credentials */
	String s = proxylogin + ":" + proxypass;
	String se = new BASE64Encoder().encodeBuffer(s.getBytes());

	try {
	  /* Create a HttpURLConnection Object and set the properties */
	  URL u = new URL(url);
	  HttpURLConnection uc = (HttpURLConnection) u.openConnection();
	  uc.setRequestProperty("Proxy-Authorization", "Basic " + se);
	  uc.connect();

	  /* Print the content of the url to the console. */
	  showContent(uc);
	} catch (IOException e) {
	  e.printStackTrace();
	}
  }

  private void showContent(HttpURLConnection uc) throws IOException {
	InputStream i = uc.getInputStream();
	char c;
	InputStreamReader isr = new InputStreamReader(i);
	BufferedReader br = new BufferedReader(isr);
	String line;
	while ((line = br.readLine()) != null) {
	  System.out.println(line);
	}
  }

  public static void main(String[] args) {
	
	  String proxyhost = "xxxxxxx";
	  String proxyport = "80";
	  String proxylogin = "xxxx";
	  String proxypass = "xxxx";
	  String url = "http://www.guj.com.br";
	  new PassProxy(proxyhost, proxyport, proxylogin, proxypass, url);
	
  }

}

Mas ta dando o seguinte erro:

java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic U291emFNUjpub21pbmltbw==

	at sun.net.www.protocol.http.HttpURLConnection.checkMessageHeader(HttpURLConnection.java:171)
	at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:1200)
	at PassProxy.<init>(PassProxy.java:26)
	at PassProxy.main(PassProxy.java:54)

8 Respostas

C

po, e ai cara vc conseguiu resolver isso? eu to procurando por isso, pois aki no trampo eu preciso passar usuario e senha do proxy, mas nem sei por onde começar…

se tiver alguma novidade por ai da um toke ok?

[]s

RodrigoSol

O jeito é mesmo conseguir uma copia do Java Commerce™ Toolkit, por que você precisa encriptografar a senha e o usuário no formato de 64 bits. Se você tiver o jar com a classe javax.commerce.util.BASE64Encoder o exemplo que postei anteriormente deve funcionar.

C

pode crer! funcionou mesmo! eu ja tinha esse pacote no meu micro…
valeu cara! []s

RodrigoSol

Será que você pode me mandar esse pacote por e-mail?

(rodrigosol [a.t] terra [d.o.t] com [d.o.t] br)

Valeu!

C

mando sim cara, mas da uma confirmada ai:

%JAVA_HOME%/jre/lib/rt.jar

renomeia pra .ZIP e da uma olhada na estrutura de diretorio do zip se no diretorio sun.misc naum tem a classe BASE64Encoder.class

[]s

RodrigoSol

Essa eu tenho … mas por algum motivo estranho ela não funciona…

Valeu por ter enviado o e-mail :lol:

RodrigoSol

Valeu Willian, mas não é essa classe que eu preciso… preciso da que está junto do Commerce ToolKit… achei que era essa que você tinha pegado…

O site da sun continua com problemas na hora de baixar…

Mas de qualquer forma muito obrigado!

C

po! ke droga!!! desculpai num ter te ajudado muito, cara!
e otra, eu nem sei o ke eh esse commerce toolkit. será que eu tenho isso aki? nem sei hauHauHAuHAuA, soh baixei a jsdk1.4.alguma.coisa

[]s

Criado 6 de fevereiro de 2004
Ultima resposta 2 de mar. de 2004
Respostas 8
Participantes 2