2010-03-12 10 views
11

में http_proxy चर का उपयोग करने के लिए प्रॉक्सी के पीछे जावा ऐप मैं एक साधारण जावा एपलिकेशन (कमांड लाइन) के बारे में सोच रहा हूं जो एक्सएमएल फ़ाइल डाउनलोड करने के लिए इंटरनेट से कनेक्ट होता है, समस्या यह है कि मेरा उबंटू इंटरनेट से कनेक्ट करने के लिए प्रॉक्सी का उपयोग कर रहा है उपयोगकर्ता नाम और पासवर्ड के साथ (http_proxy ="http://<username>:<pwd>@<ip>:<port>" के माध्यम से)। तो मेरा सवाल यह है कि http_proxy चर का उपयोग करने के लिए जावा ऐप लिखना संभव हो सकता है? प्रत्येक ऐप में प्रोग्रामेटिक रूप से http प्रॉक्सी और मेजबान सेट करने के बजाय मैं लिखूंगा।लिनक्स

उत्तर

6
एक मौजूदा JVM के साथ

आप

java -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080 -Dhttp.noProxyHosts=”localhost|host.mydomain.com” GetURL 

देखें http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html

+2

उपयोगकर्ता नाम और पासवर्ड उदाहरण http://www.rgagnon.com/javadetails/java-0085 एचटीएमएल http://www.developer.com/java/other/article.php/1551421/Questions-on-HttpURLConnection-and-Proxies.htm – EGHM

-2

http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html में वहाँ JVM करने के लिए प्रॉक्सी उपयोगकर्ता नाम और पासवर्ड पारित करने के लिए कोई आदेश है प्रॉक्सी होस्ट और पोर्ट जावा गुण का उपयोग कर पारित कर सकते हैं।

1

उपयोगकर्ता नाम और पासवर्ड के लिए, के बारे में क्या:

-Dhttp.proxyUser=username -Dhttp.proxyPassword=supersecret 
17

खोल मत भूलना चर _JAVA_OPTIONS

export _JAVA_OPTIONS='-Dhttp.proxyHost=cache.com -Dhttp.proxyPort=3128' 

अधिक संपत्तियों के लिए यहाँ देखो: http://mindprod.com/jgloss/properties.html

+1

यह न भूलें कि [HTTPS की अपनी गुण हैं] (https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html) कि रोडी का उल्लेख नहीं है। –

6

आप इस का उपयोग कर सकते हैं जावा एप्लिकेशन

पर स्वचालित वातावरण के लिए स्क्रिप्ट

यह एक बुद्धिमान स्क्रिप्ट है अगर आप nmap अनुभाग सक्षम है, यह अगर यह स्थिति यह प्रॉक्सी का प्रयोग किया जाता है अगर यह स्थिति यह सीधा संबंध उपयोग कर रहा है नीचे है निर्भर है प्रॉक्सी ऊपर या नीचे स्थिति का पता लगाने है, ..

इस के साथ

स्क्रिप्ट आप पर्यावरण सेटिंग्स के साथ अपने एप्लिकेशन कनेक्ट या पर्यावरण या प्रॉक्सी सेवा को पहचान पद्धति के साथ अधिलेखित कर सकते हैं, आवेदन प्रत्यक्ष या प्रॉक्सी मोड

यह एक बुद्धिमान कनेक्शन बैश खोल स्क्रिप्ट

Ofcouse यदि आप सक्षम नहीं है का चयन करता है एनएमएपी सेवा ऊपर/नीचे अनुभाग, यह एक साधारण प्रॉक्सी वातावरण है या आपके आवेदन के लिए आपके ओवरराइट मूल्य

यह अपने जावा आवेदन

चल तो स्वत: प्रॉक्सी कनेक्शन कमांड लाइन का निर्माण किया है, तो यह है स्क्रिप्ट के कोड:

#!/bin/bash 
# Author : Kerim BASOL 
# Twitter : http://twitter.com/kerimbasol 
# URL : http://kerimbasol.com 
# Version : 0.1 
# Java Proxy support script 
# You can use with GNU License 

# Which is your runtime jar file 
# Please change this as your application's needs 
JARFILE="myapp.jar" 

#Automaticly import system proxy settings 
if [ -n "$http_proxy" ] ; then 
    echo $http_proxy | grep "@" 
    if [ $? -eq 0 ]; then # If variable has username and password, its parse method different 
    PROXY_HOST=$(echo $http_proxy | sed 's/http:\/\/.*@\(.*\):.*/\1/') 
    PROXY_PORT=$(echo $http_proxy | sed 's/http:\/\/.*@.*:\(.*\)/\1/' | tr -d "/") 
    USERNAME=$(echo $http_proxy | sed 's/http:\/\/\(.*\)@.*/\1/'|awk -F: '{print $1}') 
    PASSWORD=$(echo $http_proxy | sed 's/http:\/\/\(.*\)@.*/\1/'|awk -F: '{print $2}') 
    else # If it doesn't have username and password, its parse method this 
    PROXY_HOST=$(echo $http_proxy | sed 's/http:\/\/\(.*\):.*/\1/') 
    PROXY_PORT=$(echo $http_proxy | sed 's/http:\/\/.*:\(.*\)/\1/' | tr -d "/") 
    fi 
fi 

# If you want to overwrite system proxy settings 
# uncomment these lines as your wish 
#PROXY_HOST="127.0.0.1" 
#PROXY_PORT="3128" 
#USERNAME="kerimbasol" 
#PASSWORD="deneme" 

# Display usage 
if [ $# -gt 0 ] ; then 
    if [ $1 = "--help" ] ; then 
      echo "$0 [<proxy-server> <proxy-port> [<username> <password> ] ] " 
      exit 0 
    fi 
fi 

# Command line proxy pass 
if [ $# -gt 1 ] ; then 
    PROXY_HOST=$1 
    PROXY_PORT=$2 
    if [ $# -gt 3 ] ; then 
      USERNAME=$3 
      PASSWORD=$4 
    fi 
fi 

# If you want to use this feature , enables and disables proxy support for proxy service up or down status 
# uncomment these line, if you installed nmap 
# at ubuntu system you can type this command for this future 
# sudo apt-get install nmap 
#STATUS=$(nmap -sT $PROXY_HOST -p $PROXY_PORT 2>/dev/null| grep open |awk '{print $2}') 
#if [ "$STATUS" != "open" ]; then # If service isn't running, disable proxy support 
# PROXY_HOST="" 
# PROXY_PORT="" 
#fi 

CMD="java -cp." 
if [ -n "$PROXY_HOST" -a -n "$PROXY_PORT" ] ; then 
    CMD="java -cp . -Dhttp.proxyHost=$PROXY_HOST -Dhttp.proxyPort=$PROXY_PORT" 
    if [ -n "$USERNAME" -a -n "$PASSWORD" ]; then 
    CMD="$CMD -Dhttp.proxyUser=$USERNAME -Dhttp.proxyPassword=$PASSWORD" 
    fi 
fi 

# If you want , change this line as your application wish ;) 
CMD="$CMD -jar $JARFILE" 

eval $CMD