Commit bf327467 authored by Administrator's avatar Administrator

Merge branch 'staging' into 'master'

Staging

See merge request !123
parents 94942a23 e4de15af
......@@ -94,8 +94,15 @@ public class AdministratorController {
//用户通过银行转账,手动插入余额记录
@PreAuthorize(Securitys.ROOT_EL)
@RequestMapping(path = "/0xadministrator/banktransfer", method = RequestMethod.POST)
public UserBalance bankTransferInsert(@RequestBody UserBalance userBalance) {
return paymentService.bankTransferInsertion(userBalance.getUsername(), (int) userBalance.getBalanced());
public HashMap bankTransferInsert(@RequestBody UserBalance userBalance) {
HashMap<String, Object> map = new HashMap<>();
try {
map.put("userbalance", paymentService.bankTransferInsertion(userBalance.getUsername(), (int) userBalance.getBalanced()));
map.put("status", "success");
} catch (Exception e) {
map.put("status", "failed");
}
return map;
}
//--------------------------------用户--------------------------------------//
......@@ -171,6 +178,7 @@ public class AdministratorController {
return userPrePaidBillingService.findUserBillingByUnpaid(username, BillStatus.UNPAID);
}
//--------------------------------系统--------------------------------------//
//查询某时段内用户的账单,tested
@PreAuthorize("hasRole('ADMIN')")
......@@ -195,6 +203,14 @@ public class AdministratorController {
return administratorService.searchCreateAccountBetween(pageable,strDate1,strDate2,isAuthorized);
}
// 查询所有用户消费
@PreAuthorize(Securitys.ADMIN_EL)
@RequestMapping(path = "/0xadministrator/allused", method = RequestMethod.GET)
public Page<UserBalance> findAllused(@RequestParam(value="page")int page , @RequestParam(value="size")int size) {
Pageable pageable = PageRequest.of(page, size);
return administratorService.getAllUserUsed(pageable);
}
//search company earnings detail by month tested
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(path ="/0xadministrator/companyearning/{stringdate}",method = RequestMethod.GET)
......
......@@ -4,6 +4,9 @@ public class IpCountQueryResultDto {
long IpCount_using;
long IpCount_all;
long IpCount_yesterday_using;
long IpCount_yesterday_all;
public long getIpCount_all() {
return IpCount_all;
}
......@@ -19,4 +22,20 @@ public class IpCountQueryResultDto {
public void setIpCount_using(long ipCount_using) {
IpCount_using = ipCount_using;
}
public long getIpCount_yesterday_all() {
return IpCount_yesterday_all;
}
public void setIpCount_yesterday_all(long ipCount_yesterday_all) {
IpCount_yesterday_all = ipCount_yesterday_all;
}
public long getIpCount_yesterday_using() {
return IpCount_yesterday_using;
}
public void setIpCount_yesterday_using(long ipCount_yesterday_using) {
IpCount_yesterday_using = ipCount_yesterday_using;
}
}
......@@ -7,6 +7,7 @@ import org.springframework.data.domain.Page;
public class PromotionQueryResultDto {
private String username;
private String code;
private long ipCount;
Page<AccountPromotionDto> users;
Promotion promotion;
......@@ -50,4 +51,12 @@ public class PromotionQueryResultDto {
public void setUsers(Page<AccountPromotionDto> users) {
this.users = users;
}
public long getIpCount() {
return ipCount;
}
public void setIpCount(long ipCount) {
this.ipCount = ipCount;
}
}
package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.UserBalance;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserBalanceRepository extends MongoRepository<UserBalance, String>, UserBalanceRepositoryCustom {
}
package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.UserBalance;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
public interface UserBalanceRepositoryCustom {
void incrementBalance(UserBalance balance, float balancedIcrement, float usedIncrement);
Page<UserBalance> findAllOrderByUsedDesc(Pageable pageable);
}
......@@ -3,10 +3,16 @@ package com.edgec.browserbackend.account.repository;
import com.edgec.browserbackend.account.domain.UserBalance;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
import static org.springframework.data.mongodb.core.query.Criteria.where;
public class UserBalanceRepositoryCustomImpl implements UserBalanceRepositoryCustom {
......@@ -24,4 +30,16 @@ public class UserBalanceRepositoryCustomImpl implements UserBalanceRepositoryCus
mongoTemplate.updateFirst(basicQuery, update, UserBalance.class);
}
@Override
public Page<UserBalance> findAllOrderByUsedDesc(Pageable pageable) {
Document doc = new Document();
BasicQuery basicQuery = new BasicQuery(doc);
long count = mongoTemplate.count(basicQuery, UserBalance.class);
basicQuery.with(pageable);
basicQuery.with(Sort.by(Sort.Direction.DESC, "used"));
List<UserBalance> userBalances = mongoTemplate.find(basicQuery, UserBalance.class);
Page<UserBalance> userBalancePage = new PageImpl<>(userBalances, pageable, count);
return userBalancePage;
}
}
......@@ -65,4 +65,6 @@ public interface AdministratorService {
void addUserWhiteList(String username, String website);
File getProxyConfig();
Page<UserBalance> getAllUserUsed(Pageable pageable);
}
......@@ -507,9 +507,7 @@ public class AccountServiceImpl implements AccountService {
com.edgec.browserbackend.common.commons.utils.SmsUtils.sendNewAccountSms("13570690305", com.edgec.browserbackend.common.commons.utils.SmsUtils.SmsTemplateCode.NEWACCOUNT, param);
com.edgec.browserbackend.common.commons.utils.SmsUtils.sendNewAccountSms("13802945832", com.edgec.browserbackend.common.commons.utils.SmsUtils.SmsTemplateCode.NEWACCOUNT, param);
if (inviter != null) {
paymentService.bankTransferInsertion(account.getName(), 12);
}
log.info("new account has been created: " + account.getName());
......
......@@ -10,11 +10,12 @@ import com.edgec.browserbackend.account.repository.*;
import com.edgec.browserbackend.account.service.AdministratorService;
import com.edgec.browserbackend.auth.service.UserService;
import com.edgec.browserbackend.browser.ErrorCode.BrowserErrorCode;
import com.edgec.browserbackend.browser.domain.IpCountRecord;
import com.edgec.browserbackend.browser.domain.ProxyConfig;
import com.edgec.browserbackend.browser.repository.IpCountRecordRepository;
import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import com.edgec.browserbackend.browser.repository.ProxyConfigRepository;
import com.edgec.browserbackend.common.commons.error.ClientRequestException;
import com.edgec.browserbackend.common.commons.utils.DateConverter;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,9 +30,12 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.atomic.AtomicLong;
@Service
......@@ -67,6 +71,9 @@ public class AdministratorServiceImpl implements AdministratorService {
@Autowired
private ProxyConfigRepository proxyConfigRepository;
@Autowired
private IpCountRecordRepository ipCountRecordRepository;
@Override
public Administrator createAdministrator(Administrator administrator) {
Administrator administrator1 = new Administrator();
......@@ -375,16 +382,31 @@ public class AdministratorServiceImpl implements AdministratorService {
public IpCountQueryResultDto queyrIpCount(String username) {
IpCountQueryResultDto ipCountQueryResultDto = new IpCountQueryResultDto();
if (StringUtils.isBlank(username)) {
long ipcount_using = ipResourceRepository.countAllByIsDeleted(false);
long ipcount_using = ipResourceRepository.countAllByIsDeletedAndValidTimeGreaterThan(false, Instant.now().toEpochMilli());
long ipcount_all = ipResourceRepository.count();
ipCountQueryResultDto.setIpCount_using(ipcount_using);
ipCountQueryResultDto.setIpCount_all(ipcount_all);
IpCountRecord ipCountRecord = ipCountRecordRepository.findFirstByUsernameAndTimestampBetween("all",
Instant.now().minus(1, ChronoUnit.DAYS).toEpochMilli(),
Instant.now().toEpochMilli());
if (ipCountRecord != null) {
ipCountQueryResultDto.setIpCount_all(ipCountRecord.getIp_all());
ipCountQueryResultDto.setIpCount_using(ipCountRecord.getIp_using());
}
} else {
long ipcount_using = ipResourceRepository.countAllByOwnerAndIsDeleted(username, false);
long ipcount_using = ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(username, false, Instant.now().toEpochMilli());
long ipcount_all = ipResourceRepository.countAllByOwner(username);
ipCountQueryResultDto.setIpCount_using(ipcount_using);
ipCountQueryResultDto.setIpCount_all(ipcount_all);
IpCountRecord ipCountRecord = ipCountRecordRepository.findFirstByUsernameAndTimestampBetween(username,
Instant.now().minus(1, ChronoUnit.DAYS).toEpochMilli(),
Instant.now().toEpochMilli());
if (ipCountRecord != null) {
ipCountQueryResultDto.setIpCount_all(ipCountRecord.getIp_all());
ipCountQueryResultDto.setIpCount_using(ipCountRecord.getIp_using());
}
}
return ipCountQueryResultDto;
}
......@@ -420,6 +442,7 @@ public class AdministratorServiceImpl implements AdministratorService {
List<Account> accounts = accountRepository.findAllBySignupDateBetweenAndPromotionCodeAndParentIsNull(dateTime1, dateTime2, account.getPromotion().getCode());
Promotion promotion = new Promotion();
Account finalAccount = account;
AtomicLong ipCount = new AtomicLong();
if (accounts != null && accounts.size() > 0) {
accounts.forEach(x -> {
promotion.setInvitedUsers(promotion.getInvitedUsers() + 1);
......@@ -430,10 +453,12 @@ public class AdministratorServiceImpl implements AdministratorService {
promotion.setTotalCommission(promotion.getTotalCommission() + (int)totalCommission);
promotion.setCommission(promotion.getCommission() + x.getPromotion().getCommission());
double secondCommission = 0;
ipCount.addAndGet(ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(x.getName(), false, Instant.now().toEpochMilli()));
if (finalAccount.getPromotion().isSale() && x.getParent() == null) {
List<Account> secondPromotes = accountRepository.findByPromotionCodeAndParentIsNull(x.getPromotion().getCode());
if (secondPromotes != null && secondPromotes.size() > 0) {
for (Account secondPromote : secondPromotes) {
ipCount.addAndGet(ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(secondPromote.getName(), false, Instant.now().toEpochMilli()));
List<UserPrePaidBilling> userPrePaidBillings1 = userPrePaidBillingRepository.findByAdministratorAndPayMethodInAndTimestampBetween(secondPromote.getName(), Arrays.asList(1,2,3), dateTime1.getTime(), dateTime2.getTime());
if (userPrePaidBillings1 != null && userPrePaidBillings1.size() > 0)
secondCommission += userPrePaidBillings1.stream().mapToDouble(UserPrePaidBilling::getTotal).sum();
......@@ -450,7 +475,7 @@ public class AdministratorServiceImpl implements AdministratorService {
});
}
promotionQueryResultDto.setPromotion(promotion);
promotionQueryResultDto.setIpCount(ipCount.get());
return promotionQueryResultDto;
} catch (Exception e) {
log.error(e.getMessage(), e);
......@@ -488,6 +513,12 @@ public class AdministratorServiceImpl implements AdministratorService {
return null;
}
@Override
public Page<UserBalance> getAllUserUsed(Pageable pageable) {
Page<UserBalance> userBalances = userBalanceRepository.findAllOrderByUsedDesc(pageable);
return userBalances;
}
}
......
package com.edgec.browserbackend.browser.domain;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "ipcountrecord")
public class IpCountRecord {
private String username;
private long timestamp;
private long ip_using;
private long ip_all;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public long getIp_all() {
return ip_all;
}
public void setIp_all(long ip_all) {
this.ip_all = ip_all;
}
public long getIp_using() {
return ip_using;
}
public void setIp_using(long ip_using) {
this.ip_using = ip_using;
}
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
}
package com.edgec.browserbackend.browser.repository;
import com.edgec.browserbackend.browser.domain.IpCountRecord;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface IpCountRecordRepository extends MongoRepository<IpCountRecord, String> {
IpCountRecord findFirstByUsernameAndTimestampBetween(String username, long begin, long end);
}
......@@ -22,6 +22,9 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String
List<IpResource> findByOwnerAndIsDeletedAndShopIdIsNull(String owner, boolean isDeleted);
List<IpResource> findByOwnerAndStatusIsNotInAndIsDeletedAndShopIdIsNull(String owner, List<Integer> status, boolean isDeleted);
List<IpResource> findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(String owner, int status, boolean isDeleted);
List<IpResource> findByOwnerInAndIsDeletedAndShopIdIsNull(List<String> owner, boolean isDeleted);
List<IpResource> findByOwnerInAndStatusIsNotInAndIsDeletedAndShopIdIsNull(List<String> owner, List<Integer> status, boolean isDeleted);
List<IpResource> findByOwnerInAndStatusAndIsDeletedAndShopIdIsNull(List<String> owner, int status, boolean isDeleted);
List<IpResource> findByStatusAndShopIdInAndIsDeleted(int status, List<String> ipIds, boolean isDeleted);
Page<IpResource> findByIsDeletedAndIdInAndAddrLikeOrderByPurchasedTimeDesc(boolean isDeleted, List<String> ipIds, String addr, Pageable pageable);
Page<IpResource> findByIsDeletedAndIdInAndVendorCnLikeOrderByPurchasedTimeDesc(boolean isDeleted, List<String> ipIds, String vendorCn, Pageable pageable);
......@@ -44,8 +47,8 @@ public interface IpResourceRepository extends MongoRepository<IpResource, String
int countByStatusAndIdInAndIsDeleted(int status, List<String> ipIds, boolean isDeleted);
long countAllByIsDeleted(boolean isDeleted);
long countAllByIsDeletedAndValidTimeGreaterThan(boolean isDeleted, long time);
long countAllByOwnerAndIsDeleted(String username, boolean isDeleted);
long countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(String username, boolean isDeleted, long time);
long countAllByOwner(String username);
}
......@@ -558,21 +558,42 @@ public class IpResourceServiceImpl implements IpResourceService {
List<IpResource> ipResources = new ArrayList<>();
List<IpResource> notUsed = null;
List<String> children = new ArrayList<>();
boolean isParent = false;
if (account.getParent() == null) {
isParent = true;
children = accountRepository.findByParent(account.getName()).stream().map(Account::getName).collect(Collectors.toList());
}
children.add(account.getName());
switch (groupType) {
case 1:
ipResources = ipResourceRepository.findByShopIdInAndIsDeleted(shopIds, false);
if (!isParent)
notUsed = ipResourceRepository.findByOwnerAndIsDeletedAndShopIdIsNull(username, false);
else
notUsed = ipResourceRepository.findByOwnerInAndIsDeletedAndShopIdIsNull(children, false);
break;
case 2:
ipResources = ipResourceRepository.findByStatusAndShopIdInAndIsDeleted(2, shopIds, false);
if (!isParent)
notUsed = ipResourceRepository.findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(username, 2, false);
else
notUsed = ipResourceRepository.findByOwnerInAndStatusAndIsDeletedAndShopIdIsNull(children, 2, false);
break;
case 3:
ipResources = ipResourceRepository.findByStatusAndShopIdInAndIsDeleted(1, shopIds, false);
if (!isParent)
notUsed = ipResourceRepository.findByOwnerAndStatusAndIsDeletedAndShopIdIsNull(username, 1, false);
else
notUsed = ipResourceRepository.findByOwnerInAndStatusAndIsDeletedAndShopIdIsNull(children, 1, false);
break;
case 4:
if (!isParent)
notUsed = ipResourceRepository.findByOwnerAndStatusIsNotInAndIsDeletedAndShopIdIsNull(username, Arrays.asList(3, 5, 6),false);
else
notUsed = ipResourceRepository.findByOwnerInAndStatusIsNotInAndIsDeletedAndShopIdIsNull(children, Arrays.asList(3, 5, 6), false);
break;
}
if (notUsed != null)
......
package com.edgec.browserbackend.browser.task;
import com.alibaba.fastjson.JSONObject;
import com.edgec.browserbackend.account.domain.Account;
import com.edgec.browserbackend.account.domain.IpChargeRequestDto;
import com.edgec.browserbackend.account.domain.QueryIpUrlList;
import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.account.repository.QueryIpUrlListRepository;
import com.edgec.browserbackend.account.service.AccountService;
import com.edgec.browserbackend.browser.domain.IpCountRecord;
import com.edgec.browserbackend.browser.domain.IpResource;
import com.edgec.browserbackend.browser.domain.IpType;
import com.edgec.browserbackend.browser.dto.IpBuyResultDto;
import com.edgec.browserbackend.browser.dto.IpInfoResultDto;
import com.edgec.browserbackend.browser.dto.ShopRequestDto;
import com.edgec.browserbackend.browser.repository.IpCountRecordRepository;
import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import com.edgec.browserbackend.browser.service.IpAndShopService;
import com.edgec.browserbackend.common.commons.utils.NotifyUtils;
......@@ -21,6 +25,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
......@@ -62,6 +67,12 @@ public class BrowserTask {
@Autowired
private QueryIpUrlListRepository queryIpUrlListRepository;
@Autowired
private IpCountRecordRepository ipCountRecordRepository;
@Autowired
private AccountRepository accountRepository;
@Value("${spring.profiles.active}")
private String profiles;
......@@ -228,7 +239,11 @@ public class BrowserTask {
if (ipResourceRepository.healthLock(ipResource)) {
try {
QueryIpUrlList queryIpUrlList = queryIpUrlListRepository.findAll().get(0);
if (ipResource.isSpecialLine()) {
if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
ipResource.setStatus(1);
ipResourceRepository.save(ipResource);
}
else if (ipResource.isSpecialLine()) {
Trans trans = new Trans(ipResource.getProxyUsername(), ipResource.getProxyPassword());
String sp_result = trans.get(queryIpUrlList.getUrl());
int failTime = 0;
......@@ -278,6 +293,33 @@ public class BrowserTask {
}
}
@Scheduled(cron = "0 0 0 * * ?")
public void countIp() {
List<Account> accounts = accountRepository.findAll();
try {
accounts.forEach(x -> {
IpCountRecord ipCountRecord = new IpCountRecord();
ipCountRecord.setUsername(x.getName());
ipCountRecord.setTimestamp(Instant.now().toEpochMilli());
long ipcount_using = ipResourceRepository.countAllByOwnerAndIsDeletedAndValidTimeGreaterThan(x.getName(), false, Instant.now().toEpochMilli());
long ipcount_all = ipResourceRepository.countAllByOwner(x.getName());
ipCountRecord.setIp_all(ipcount_all);
ipCountRecord.setIp_using(ipcount_using);
ipCountRecordRepository.save(ipCountRecord);
});
IpCountRecord ipCountRecord = new IpCountRecord();
ipCountRecord.setUsername("all");
ipCountRecord.setTimestamp(Instant.now().toEpochMilli());
long ipcount_using = ipResourceRepository.countAllByIsDeletedAndValidTimeGreaterThan(false, Instant.now().toEpochMilli());
long ipcount_all = ipResourceRepository.count();
ipCountRecord.setIp_using(ipcount_using);
ipCountRecord.setIp_all(ipcount_all);
ipCountRecordRepository.save(ipCountRecord);
} catch (Exception e) {
log.error("统计IpCount error", e);
}
}
public static class HttpClientutils {
static OkHttpClient.Builder builder = new OkHttpClient.Builder();
......@@ -306,19 +348,23 @@ public class BrowserTask {
public static void main(String[] args) throws IOException {
String url = CLOUDAMURL + "/ecc/ipinfo?accountId=browser&ip=" + "100.25.101.201";
String profiles = "prod";
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
if (profiles.equals("dev") || profiles.equals("staging"))
headers.put("Authorization", "Bearer oq5tg3gMsflHcK5iZ2741G5R30XYd9blyOqH9qeBItKtrzfTsGIoy8AsxqqNXdcm");
else if (profiles.equals("prod"))
headers.put("Authorization", "Bearer tKWsuHzcngf0RQPMss70f9jgymDIwgQ9zbLfESJdcou3pZSNWl7lNTzto8VQgwaO");
// String url = CLOUDAMURL + "/ecc/ipinfo?accountId=browser&ip=" + "100.25.101.201";
// String profiles = "prod";
// Map<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/json");
// if (profiles.equals("dev") || profiles.equals("staging"))
// headers.put("Authorization", "Bearer oq5tg3gMsflHcK5iZ2741G5R30XYd9blyOqH9qeBItKtrzfTsGIoy8AsxqqNXdcm");
// else if (profiles.equals("prod"))
// headers.put("Authorization", "Bearer tKWsuHzcngf0RQPMss70f9jgymDIwgQ9zbLfESJdcou3pZSNWl7lNTzto8VQgwaO");
//
// String rs = HttpClientutils.doGet(url, headers);
// System.out.println(rs);
// IpInfoResultDto ipInfoResultDto = JSONObject.parseObject(rs, IpInfoResultDto.class);
// System.out.println(ipInfoResultDto);
String rs = HttpClientutils.doGet(url, headers);
System.out.println(rs);
IpInfoResultDto ipInfoResultDto = JSONObject.parseObject(rs, IpInfoResultDto.class);
System.out.println(ipInfoResultDto);
Trans trans = new Trans("8.208.28.192", "962MrDCCd2pvaA1");
String sp_result = trans.get("http://pv.sohu.com/cityjson");
System.out.println(sp_result);
}
......
......@@ -23,7 +23,7 @@ import java.io.InputStreamReader;
public class Trans {
private final Logger logger = LoggerFactory.getLogger(Trans.class);
static int timeout = 10 * 1000;// 以秒为单位
private static String specialHost = "39.108.183.128";//117.177.243.7
private static String specialHost = "39.108.183.128";
private static int specialPort = 20008;
private String host;
private int port;
......@@ -71,9 +71,9 @@ public class Trans {
RequestConfig requestConfig = RequestConfig.custom()
.setProxy(proxy)
.setConnectTimeout(2000)
.setSocketTimeout(2000)
.setConnectionRequestTimeout(2000)
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.setConnectionRequestTimeout(5000)
.build();
httpGet.setConfig(requestConfig);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment