# HttpURLConnection und Proxy



## madmufflon (2. Feb 2009)

hey,
sorry erstmal, dass ich das thema aufmache, aber ich hab schon alle googleergebnisse abgegrast und nix hat geholfen. Also folgendes: ich hab ein programm, das über einen proxy ins internet soll. dazu brauch ich eine HttpURLConnection. leider muss dieses Programm hinter einem Proxy laufen. ich muss also eine HttpURLconnection machen, die über einen Proxy läuft. dazu hab ich 2 ansätze, beide verbinden sich zwar (mein computer ist hier auch so am internet) aber beide nicht über den proxy. der rest des programms läuft soweit.
1ster Ansatz:

```
System.setProperty("http.proxySet", "true");
                        System.setProperty("http.proxyHost", main.getProxy());
                        System.setProperty("http.proxyPort", String.valueOf(main.getProxyPort()));
                        
                        System.out.println(System.getProperty("http.proxyHost"));
                        System.out.println(System.getProperty("http.proxyPort"));
                        
                        URL url = main.getURL();
                        
                        HttpURLConnection urlc;
                        urlc = (HttpURLConnection)(url.openConnection());
                        
                        urlc.setDoOutput(true);
                        
                        System.out.println(urlc.usingProxy());
```

Ergibt folgende Ausgabe:

```
127.0.0.1
3128
false
```
Funktioniert also nich. der proxyllog zeigt auch nichts an.

2ter Ansatz:

```
URL url = main.getURL();
                        
                        HttpURLConnection urlc;
                        Proxy pr;
                        int port = main.getProxyPort();
                        if(port < 1) {
                            port = 80;
                        }
                        InetAddress ip = Inet4Address.getByName(main.getProxy());
                        InetSocketAddress sa = new InetSocketAddress(ip,port);
                                    
                        pr = new Proxy(Proxy.Type.HTTP, sa);
                        urlc = (HttpURLConnection)(url.openConnection(pr));
                        
                        urlc.setDoOutput(true);
                        
                        System.out.println(urlc.usingProxy());
```
Ergibt:
false

funktioniert also beides nicht, hat irgendwer einen rat?
danke schonmal
martin


----------



## DocRandom (3. Feb 2009)

Moin!

Hast Du Dir das auch wirklich genau angesehen?

lg


----------



## madmufflon (3. Feb 2009)

hab es jetzt auch nochmal so versucht: 

```
HttpClient httpclient = new HttpClient();
        
       [b] httpclient.getHostConfiguration().setProxy(main.getProxy(), main.getProxyPort());[/b]

        PostMethod method = new PostMethod(url.toExternalForm());
        method.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE,
                    false);
        try {
            Part[] parts = {
                new FilePart(main.getFilename(), file.getName(), file)
            };
            method.setRequestEntity(
                new MultipartRequestEntity(parts, method.getParams())
                );
            httpclient.getHttpConnectionManager().
                getParams().setConnectionTimeout(5000);
            int status = httpclient.executeMethod(method);
            if (status == HttpStatus.SC_OK) {
                System.out.println(
                    "Upload complete, response=" + method.getResponseBodyAsString()
                );
            } else {
                System.out.println(
                    "Upload failed, response=" + HttpStatus.getStatusText(status)
                );
            }
        } catch (Exception ex) {
            System.out.println("ERROR: " + ex.getClass().getName() + " "+ ex.getMessage());
            ex.printStackTrace();
        } finally {
            method.releaseConnection();
        }
```
In den Proxyprotokollen taucht er trotzdem nicht auf, aber der request wird erfolgreich versendet.
ich versteh das nicht...


----------

