集成快代理 ip池 test
This commit is contained in:
parent
c8e37eb4a3
commit
3024ccc782
|
@ -136,4 +136,14 @@ tencent:
|
||||||
templateId: 2200612
|
templateId: 2200612
|
||||||
smsSdkAppId: 1400921153
|
smsSdkAppId: 1400921153
|
||||||
region: ap-beijing
|
region: ap-beijing
|
||||||
smsUrl: sms.tencentcloudapi.com
|
smsUrl: sms.tencentcloudapi.com
|
||||||
|
|
||||||
|
clientIP:
|
||||||
|
proxyAddr: q335.kdltpspro.com
|
||||||
|
proxyPort: 15818
|
||||||
|
account: t12023179565372
|
||||||
|
pwd: nffm6c11
|
||||||
|
accountSecretId: uadb4a2pwopd613sxr89
|
||||||
|
accountsecretKey: 2xib03rq8uqh15x230ea9emjasiu3exv
|
||||||
|
secretId: o7fnvzz6211s5ymtw3nq
|
||||||
|
secretKey: qg2ehv53xazqj0fa5zer3dcssoj311ff
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.ruoyi.common.config;
|
||||||
|
|
||||||
|
import com.tencentcloudapi.common.Credential;
|
||||||
|
import com.tencentcloudapi.common.profile.ClientProfile;
|
||||||
|
import com.tencentcloudapi.common.profile.HttpProfile;
|
||||||
|
import com.tencentcloudapi.sms.v20210111.SmsClient;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Configuration
|
||||||
|
public class ProxyProperties {
|
||||||
|
|
||||||
|
// clientIP:
|
||||||
|
// proxyAddr: q335.kdltpspro.com
|
||||||
|
// proxyPort: 15818
|
||||||
|
// account: t12023179565372
|
||||||
|
// pwd: nffm6c11
|
||||||
|
// accountSecretId: uadb4a2pwopd613sxr89
|
||||||
|
// accountsecretKey: 2xib03rq8uqh15x230ea9emjasiu3exv
|
||||||
|
// secretId: o7fnvzz6211s5ymtw3nq
|
||||||
|
// secretKey: qg2ehv53xazqj0fa5zer3dcssoj311ff
|
||||||
|
|
||||||
|
@Value("${clientIP.proxyAddr}")
|
||||||
|
private String proxyAddr;
|
||||||
|
@Value("${clientIP.proxyPort}")
|
||||||
|
private String proxyPort;
|
||||||
|
@Value("${clientIP.account}")
|
||||||
|
private String account;
|
||||||
|
@Value("${clientIP.pwd}")
|
||||||
|
private String pwd;
|
||||||
|
@Value("${clientIP.accountSecretId}")
|
||||||
|
private String accountSecretId;
|
||||||
|
@Value("${clientIP.accountsecretKey}")
|
||||||
|
private String accountsecretKey;
|
||||||
|
@Value("${clientIP.secretId}")
|
||||||
|
private String secretId;
|
||||||
|
@Value("${clientIP.secretKey}")
|
||||||
|
private String secretKey;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
package com.ruoyi.business.service.impl;
|
||||||
|
|
||||||
|
import org.apache.http.HttpHost;
|
||||||
|
import org.apache.http.auth.AuthScope;
|
||||||
|
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||||
|
import org.apache.http.client.CredentialsProvider;
|
||||||
|
import org.apache.http.client.config.RequestConfig;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.utils.URIBuilder;
|
||||||
|
import org.apache.http.impl.client.BasicCredentialsProvider;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class TestProxyOKHttpClient {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
String pageUrl = "https://waimaieapp.meituan.com/gw/customer/comment/scores"; // 要访问的目标网页
|
||||||
|
String proxyIp = "q335.kdltpspro.com"; // 隧道服务器域名
|
||||||
|
int proxyPort = 15818; // 端口号
|
||||||
|
// 用户名密码, 若已添加白名单则不需要添加
|
||||||
|
// private static String username = "t12023179565372";
|
||||||
|
// private static String password = "nffm6c11";
|
||||||
|
String ck = "WEBDFPID=81x675y2y0x156y20z8194xvv5622uv180938x0x565979585zu21vx7-2034987530564-1719627530564QGCGCKGfd79fef3d01d5e9aadc18ccd4d0c95072413; _lxsdk_cuid=19061b46258c8-0a575a85246371-d373666-1fa400-19061b4625873; _lxsdk=19061b46258c8-0a575a85246371-d373666-1fa400-19061b4625873; device_uuid=!f681d2ae-d8e3-44ae-abed-9319cef9b9a1; uuid_update=true; pushToken=08Y-B6R3RJh0vWW3sunjIls8g5ks282V0XDqw0_8uK2I*; shopCategory=food; JSESSIONID=dkj01s9yo2h2q99aetsthoq3; acctId=196975850; token=0eq1KL_sB7ri93DJ5E3VcEjEWxjBRjeEsXmkjhWmF3bo*; wmPoiId=21737990; isOfflineSelfOpen=0; city_id=510100; isChain=0; ignore_set_router_proxy=false; region_id=1000510100; region_version=1717637457; bsid=XexDMsEVbmI6WgjNSDW-gwTDf1RtcW1Pkmjt8mV3rmsf3lqyuwluHfeuFrPPZ_2JX9I8z7LBpBdpaBthMwykUw; city_location_id=510100; location_id=510107; has_not_waimai_poi=0; cityId=210100; provinceId=210000; set_info=%7B%22wmPoiId%22%3A%2221737990%22%2C%22region_id%22%3A%221000510100%22%2C%22region_version%22%3A1717637457%7D; wpush_server_url=wss://wpush.meituan.com; logan_session_token=r97sfva90wzsyia113hr; setPrivacyTime=1_20240706; _lxsdk_s=19085cff3a6-850-391-417%7C%7C182";
|
||||||
|
|
||||||
|
// JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权
|
||||||
|
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
|
||||||
|
|
||||||
|
CredentialsProvider credsProvider = new BasicCredentialsProvider();
|
||||||
|
// credsProvider.setCredentials(new AuthScope(proxyIp, proxyPort),
|
||||||
|
// new UsernamePasswordCredentials(null, null));
|
||||||
|
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
|
||||||
|
try {
|
||||||
|
URL url = new URL(pageUrl);
|
||||||
|
HttpHost target = new HttpHost(url.getHost(), url.getDefaultPort(), url.getProtocol());
|
||||||
|
HttpHost proxy = new HttpHost(proxyIp, proxyPort);
|
||||||
|
|
||||||
|
/*
|
||||||
|
httpclient各个版本设置超时都略有不同, 此处对应版本4.5.6
|
||||||
|
setConnectTimeout:设置连接超时时间
|
||||||
|
setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间
|
||||||
|
setSocketTimeout:请求获取数据的超时时间
|
||||||
|
*/
|
||||||
|
RequestConfig config = RequestConfig.custom().setProxy(proxy).setConnectTimeout(6000)
|
||||||
|
.setConnectionRequestTimeout(2000).setSocketTimeout(6000).build();
|
||||||
|
URIBuilder uriBuilder = new URIBuilder();
|
||||||
|
uriBuilder.setHost(url.getPath());
|
||||||
|
Map<String,Object> params = new HashMap<>();
|
||||||
|
uriBuilder.setParameter("ignoreSetRouterProxy","true");
|
||||||
|
uriBuilder.setParameter("acctId",valueFromCookie("acctId",ck));
|
||||||
|
uriBuilder.setParameter("wmPoiId",valueFromCookie("wmPoiId",ck));
|
||||||
|
uriBuilder.setParameter("token",valueFromCookie("token",ck));
|
||||||
|
uriBuilder.setParameter("appType","3");
|
||||||
|
uriBuilder.setParameter("source","1");
|
||||||
|
// params.put("acctId",valueFromCookie("acctId",store.getStoreCookie()));
|
||||||
|
// params.put("wmPoiId",valueFromCookie("wmPoiId",store.getStoreCookie()));
|
||||||
|
// params.put("token",valueFromCookie("token",store.getStoreCookie()));
|
||||||
|
// params.put("appType",3);
|
||||||
|
// params.put("source",1);
|
||||||
|
|
||||||
|
HttpGet httpget = new HttpGet(uriBuilder.build());
|
||||||
|
|
||||||
|
httpget.setConfig(config);
|
||||||
|
httpget.addHeader("Accept-Encoding", "gzip"); // 使用gzip压缩传输数据让访问更快
|
||||||
|
httpget.addHeader("Connection", "close");
|
||||||
|
httpget.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36");
|
||||||
|
|
||||||
|
// String url = "https://waimaieapp.meituan.com/gw/customer/comment/scores";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CloseableHttpResponse response = httpclient.execute(target, httpget);
|
||||||
|
try {
|
||||||
|
System.out.println(response.getStatusLine());
|
||||||
|
System.out.println(EntityUtils.toString(response.getEntity()));
|
||||||
|
} finally {
|
||||||
|
response.close();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
httpclient.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析Cookie
|
||||||
|
private static String valueFromCookie(String key,String text) {
|
||||||
|
String s = text.substring(text.indexOf(key), text.length());
|
||||||
|
String value = s.substring(s.indexOf("=")+1,s.indexOf(";"));
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
package com.ruoyi.business.service.impl;
|
||||||
|
|
||||||
|
import okhttp3.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.net.Proxy;
|
||||||
|
|
||||||
|
public class test2 {
|
||||||
|
public static void main(String args[]) throws IOException {
|
||||||
|
// 目标网站
|
||||||
|
String targetUrl = "https://waimaieapp.meituan.com/gw/customer/comment/scores";
|
||||||
|
String ck = "WEBDFPID=81x675y2y0x156y20z8194xvv5622uv180938x0x565979585zu21vx7-2034987530564-1719627530564QGCGCKGfd79fef3d01d5e9aadc18ccd4d0c95072413; _lxsdk_cuid=19061b46258c8-0a575a85246371-d373666-1fa400-19061b4625873; _lxsdk=19061b46258c8-0a575a85246371-d373666-1fa400-19061b4625873; device_uuid=!f681d2ae-d8e3-44ae-abed-9319cef9b9a1; uuid_update=true; pushToken=08Y-B6R3RJh0vWW3sunjIls8g5ks282V0XDqw0_8uK2I*; shopCategory=food; JSESSIONID=dkj01s9yo2h2q99aetsthoq3; acctId=196975850; token=0eq1KL_sB7ri93DJ5E3VcEjEWxjBRjeEsXmkjhWmF3bo*; wmPoiId=21737990; isOfflineSelfOpen=0; city_id=510100; isChain=0; ignore_set_router_proxy=false; region_id=1000510100; region_version=1717637457; bsid=XexDMsEVbmI6WgjNSDW-gwTDf1RtcW1Pkmjt8mV3rmsf3lqyuwluHfeuFrPPZ_2JX9I8z7LBpBdpaBthMwykUw; city_location_id=510100; location_id=510107; has_not_waimai_poi=0; cityId=210100; provinceId=210000; set_info=%7B%22wmPoiId%22%3A%2221737990%22%2C%22region_id%22%3A%221000510100%22%2C%22region_version%22%3A1717637457%7D; wpush_server_url=wss://wpush.meituan.com; logan_session_token=r97sfva90wzsyia113hr; setPrivacyTime=1_20240706; _lxsdk_s=19085cff3a6-850-391-417%7C%7C182";
|
||||||
|
|
||||||
|
|
||||||
|
// 用户名密码, 若已添加白名单则不需要添加
|
||||||
|
// final String username = "t12023179565372";
|
||||||
|
// final String password = "nffm6c11";
|
||||||
|
|
||||||
|
String ip = "q335.kdltpspro.com"; // 代理服务器IP
|
||||||
|
int port = 15818;
|
||||||
|
|
||||||
|
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));
|
||||||
|
|
||||||
|
Authenticator authenticator = new Authenticator() {
|
||||||
|
@Override
|
||||||
|
public Request authenticate(Route route, Response response) throws IOException {
|
||||||
|
// String credential = Credentials.basic(username, password);
|
||||||
|
return response.request().newBuilder()
|
||||||
|
// .header("Proxy-Authorization", credential)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
};// 初始化HTTP请求的URL
|
||||||
|
HttpUrl.Builder urlBuilder = HttpUrl.parse(targetUrl).newBuilder();
|
||||||
|
|
||||||
|
// 添加查询参数
|
||||||
|
urlBuilder.addQueryParameter("ignoreSetRouterProxy","true");
|
||||||
|
urlBuilder.addQueryParameter("acctId",valueFromCookie("acctId",ck));
|
||||||
|
urlBuilder.addQueryParameter("wmPoiId",valueFromCookie("wmPoiId",ck));
|
||||||
|
urlBuilder.addQueryParameter("token",valueFromCookie("token",ck));
|
||||||
|
urlBuilder.addQueryParameter("appType","3");
|
||||||
|
urlBuilder.addQueryParameter("source","1");
|
||||||
|
|
||||||
|
// 构建完整的请求URL
|
||||||
|
String url = urlBuilder.build().toString();
|
||||||
|
|
||||||
|
OkHttpClient client = new OkHttpClient.Builder()
|
||||||
|
.proxy(proxy)
|
||||||
|
.proxyAuthenticator(authenticator)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36")
|
||||||
|
.addHeader("Connection","close")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
|
||||||
|
Response response = client.newCall(request).execute();
|
||||||
|
System.out.println(response.body().string());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析Cookie
|
||||||
|
private static String valueFromCookie(String key,String text) {
|
||||||
|
String s = text.substring(text.indexOf(key), text.length());
|
||||||
|
String value = s.substring(s.indexOf("=")+1,s.indexOf(";"));
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,6 +17,15 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-bicycle"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="warning"
|
type="warning"
|
||||||
|
@ -24,7 +33,6 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleExport"
|
@click="handleExport"
|
||||||
v-hasPermi="['system:role:export']"
|
|
||||||
>导出</el-button>
|
>导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
|
Loading…
Reference in New Issue