如何基于http代理解決Java固定ip問題
背景:對(duì)接第三方接口,第三方為安全考慮,需要固定ip設(shè)置白名單。公司對(duì)外使用動(dòng)態(tài)ip。
辦法:
1. 購買一臺(tái)ip固定的服務(wù)器,比如云虛擬服務(wù)器。搭建http代理服務(wù)器,比如prioxy。
2.安裝Privoxy代理軟件
yum install -y epel-release privoxy
編輯 /etc/privoxy/config 文件
修改綁定地址,搜索 listen-address ,修改需要綁定的IP
listen-address 0.0.0.0:8118
設(shè)置enable-remote-toggle 為 1
enable-remote-toggle 1
重啟服務(wù)
service privoxy restart
查看服務(wù)狀態(tài)
[root@localhost ~]# service privoxy statusRedirecting to /bin/systemctl status privoxy.service● privoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities Loaded: loaded (/usr/lib/systemd/system/privoxy.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2020-03-04 17:38:26 CST; 5s ago Process: 23138 ExecStart=/usr/sbin/privoxy --pidfile /run/privoxy.pid --user privoxy /etc/privoxy/config (code=exited, status=0/SUCCESS) Main PID: 23139 (privoxy) Memory: 872.0K CGroup: /system.slice/privoxy.service └─23139 /usr/sbin/privoxy --pidfile /run/privoxy.pid --user privox...Mar 04 17:38:25 localhost.localdomain systemd[1]: Starting Privoxy Web Proxy ...Mar 04 17:38:26 localhost.localdomain systemd[1]: Started Privoxy Web Proxy W...Hint: Some lines were ellipsized, use -l to show in full.[root@localhost ~]# netstat -anop | grep 8118tcp 0 0 0.0.0.0:8118 0.0.0.0:*LISTEN 23139/privoxy off (0.00/0/0)tcp 0 0 172.16.1.120:8311 172.16.1.123:28118 ESTABLISHED 15519/nginx: worker off (0.00/0/0)
3.HttpClient 設(shè)置代理
HttpPost httpPost = new HttpPost(url);//設(shè)置代理IP,設(shè)置連接超時(shí)時(shí)間 、 設(shè)置 請(qǐng)求讀取數(shù)據(jù)的超時(shí)時(shí)間 、 設(shè)置從connect Manager獲取Connection超時(shí)時(shí)間、HttpHost proxy = new HttpHost('172.16.1.120',8118);RequestConfig requestConfig = RequestConfig.custom() .setProxy(proxy) .setConnectTimeout(10000) .setSocketTimeout(10000) .setConnectionRequestTimeout(3000) .build();httpPost.setConfig(requestConfig);
如果是無法修改的jar,本地如何調(diào)試?
找到目標(biāo)源代碼,在項(xiàng)目代碼目錄下新建一個(gè)和目標(biāo)代碼一樣的package,并新建同名類文件,拷貝目標(biāo)類代碼至新文件,然后進(jìn)行對(duì)應(yīng)代理的設(shè)置。
原理是代碼只加載一次,誰最優(yōu)先加載誰,從而實(shí)現(xiàn)代碼覆蓋。
注意:本地開發(fā)調(diào)試完畢后,請(qǐng)刪除這個(gè)覆蓋文件。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 簡體中文轉(zhuǎn)換為繁體中文的PHP函數(shù)2. Html5播放器實(shí)現(xiàn)倍速播放的方法示例3. Django:使用filter的pk進(jìn)行多值查詢操作4. php相對(duì)路徑轉(zhuǎn)化成絕對(duì)路徑5. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程6. XML入門的常見問題(三)7. Vue 構(gòu)造選項(xiàng) - 進(jìn)階使用說明8. 淺談優(yōu)化Django ORM中的性能問題9. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(二)10. ajax4jsf 1.0.2 發(fā)布,添加新的a4j tags.
