Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
browser-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
browser-backend
Commits
fab91973
Commit
fab91973
authored
May 11, 2020
by
jim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
httpclient
parent
15d638db
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
20 deletions
+72
-20
pom.xml
pom.xml
+8
-0
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+64
-20
No files found.
pom.xml
View file @
fab91973
...
...
@@ -176,6 +176,14 @@
<version>
262
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>
com.squareup.okhttp3
</groupId>
<artifactId>
okhttp
</artifactId>
<version>
4.6.0
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
fab91973
package
com
.
edgec
.
browserbackend
.
browser
.
task
;
import
com.alibaba.fastjson.JSONObject
;
import
com.edgec.browserbackend.account.domain.IpChargeRequestDto
;
import
com.edgec.browserbackend.account.service.AccountService
;
import
com.edgec.browserbackend.browser.domain.*
;
import
com.edgec.browserbackend.browser.dto.*
;
import
com.edgec.browserbackend.browser.domain.IpResource
;
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.IpResourceRepository
;
import
com.edgec.browserbackend.browser.service.IpAndShopService
;
import
com.edgec.browserbackend.common.commons.utils.NotifyUtils
;
import
com.edgec.browserbackend.common.utils.ThreadPoolUtils
;
import
okhttp3.*
;
import
org.apache.commons.lang3.StringUtils
;
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.http.*
;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.io.IOException
;
import
java.time.Instant
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
static
com
.
edgec
.
browserbackend
.
browser
.
service
.
Impl
.
IpResourceServiceImpl
.
genRandom
;
...
...
@@ -38,6 +44,7 @@ public class BrowserTask {
private
static
String
CLOUDAMURL
=
"https://www.cloudam.cn"
;
private
static
String
TESTURL
=
"http://112.74.13.2"
;
@Autowired
private
IpResourceRepository
ipResourceRepository
;
...
...
@@ -50,13 +57,13 @@ public class BrowserTask {
@Value
(
"${spring.profiles.active}"
)
private
String
profiles
;
public
HttpHeaders
buildGetHeader
()
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setAccept
(
Arrays
.
asList
(
MediaType
.
APPLICATION_JSON
)
);
public
Map
<
String
,
String
>
buildGetHeader
()
{
Map
<
String
,
String
>
headers
=
new
HashMap
<>
();
headers
.
put
(
"Content-Type"
,
"application/json"
);
if
(
profiles
.
equals
(
"dev"
)
||
profiles
.
equals
(
"staging"
))
headers
.
setBearerAuth
(
"
oq5tg3gMsflHcK5iZ2741G5R30XYd9blyOqH9qeBItKtrzfTsGIoy8AsxqqNXdcm"
);
headers
.
put
(
"Authorization"
,
"Bearer
oq5tg3gMsflHcK5iZ2741G5R30XYd9blyOqH9qeBItKtrzfTsGIoy8AsxqqNXdcm"
);
else
if
(
profiles
.
equals
(
"prod"
))
headers
.
setBearerAuth
(
"
tKWsuHzcngf0RQPMss70f9jgymDIwgQ9zbLfESJdcou3pZSNWl7lNTzto8VQgwaO"
);
headers
.
put
(
"Authorization"
,
"Bearer
tKWsuHzcngf0RQPMss70f9jgymDIwgQ9zbLfESJdcou3pZSNWl7lNTzto8VQgwaO"
);
return
headers
;
}
...
...
@@ -176,16 +183,10 @@ public class BrowserTask {
CompletableFuture
.
runAsync
(()
->
{
if
(
ipResourceRepository
.
lockTask
(
ipResource
))
{
try
{
SimpleClientHttpRequestFactory
requestFactory
=
new
SimpleClientHttpRequestFactory
();
requestFactory
.
setConnectTimeout
(
10000
);
// 设置超时
requestFactory
.
setReadTimeout
(
10000
);
RestTemplate
restTemplate
=
new
RestTemplate
(
requestFactory
);
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
HttpHeaders
headers
=
buildGetHeader
();
HttpEntity
<
Map
<
String
,
Object
>>
entity
=
new
HttpEntity
<>(
params
,
headers
);
ResponseEntity
<
IpInfoResultDto
>
result
=
restTemplate
.
exchange
(
URL
+
"/ecc/ipinfo?accountId={accountId}&ip={ip}"
,
HttpMethod
.
GET
,
entity
,
IpInfoResultDto
.
class
,
"browser"
,
ipResource
.
getAddr
());
IpInfoResultDto
ipInfoResultDto
=
result
.
getBody
();
String
url
=
URL
+
"/ecc/ipinfo?accountId=browser&ip="
+
ipResource
.
getAddr
();
Map
<
String
,
String
>
header
=
buildGetHeader
();
String
rs
=
HttpClientutils
.
doGet
(
url
,
header
);
IpInfoResultDto
ipInfoResultDto
=
JSONObject
.
parseObject
(
rs
,
IpInfoResultDto
.
class
);
if
(
ipInfoResultDto
!=
null
&&
StringUtils
.
isBlank
(
ipInfoResultDto
.
getErrorCode
()))
{
if
(
StringUtils
.
isNotEmpty
(
ipInfoResultDto
.
getStatus
()))
{
ipResource
.
setStatus
(
0
);
...
...
@@ -212,4 +213,47 @@ public class BrowserTask {
}
public
static
class
HttpClientutils
{
static
OkHttpClient
.
Builder
builder
=
new
OkHttpClient
.
Builder
();
static
{
builder
.
connectTimeout
(
10
,
TimeUnit
.
SECONDS
);
builder
.
readTimeout
(
10
,
TimeUnit
.
SECONDS
);
}
static
OkHttpClient
client
=
new
OkHttpClient
(
builder
);
public
static
String
doGet
(
String
url
,
Map
<
String
,
String
>
headers
)
throws
IOException
{
Headers
httpHeaders
=
Headers
.
of
(
headers
);
Request
request
=
new
Request
.
Builder
()
.
get
()
.
url
(
url
)
.
headers
(
httpHeaders
)
.
build
();
Call
call
=
client
.
newCall
(
request
);
Response
response
=
call
.
execute
();
ResponseBody
responseBody
=
response
.
body
();
return
responseBody
.
string
();
}
}
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
rs
=
HttpClientutils
.
doGet
(
url
,
headers
);
System
.
out
.
println
(
rs
);
IpInfoResultDto
ipInfoResultDto
=
JSONObject
.
parseObject
(
rs
,
IpInfoResultDto
.
class
);
System
.
out
.
println
(
ipInfoResultDto
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment