Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
common
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
曲欣亮
common
Commits
02171662
Commit
02171662
authored
Aug 16, 2024
by
张永
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
1edc5eed
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
107 additions
and
100 deletions
+107
-100
HttpUtil.java
src/main/java/com/egolm/common/HttpUtil.java
+106
-0
HttpsUtil.java
src/main/java/com/egolm/common/HttpsUtil.java
+1
-100
No files found.
src/main/java/com/egolm/common/HttpUtil.java
View file @
02171662
package
com
.
egolm
.
common
;
import
java.io.BufferedReader
;
import
java.io.ByteArrayOutputStream
;
import
java.io.DataInputStream
;
import
java.io.DataOutputStream
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.OutputStream
;
import
java.io.UnsupportedEncodingException
;
import
java.net.HttpURLConnection
;
...
...
@@ -364,6 +368,108 @@ public class HttpUtil {
connection
.
disconnect
();
}
}
/**
* 模拟form表单的形式 ,上传文件 以输出流的形式把文件写入到url中,然后用输入流来获取url的响应
*
* @param url 请求地址 form表单url地址
* @param filePath 文件在服务器保存路径
* @return String url的响应信息返回值
* @throws IOException
*/
public
static
String
doPostByFile
(
String
url
,
String
filePath
)
throws
IOException
{
String
result
=
null
;
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
()
||
!
file
.
isFile
())
{
throw
new
IOException
(
"文件不存在"
);
}
/**
* 第一部分
*/
URL
urlObj
=
new
URL
(
url
);
// 连接
HttpURLConnection
con
=
(
HttpURLConnection
)
createConnection
(
url
,
null
);
/**
* 设置关键值
*/
con
.
setRequestMethod
(
"POST"
);
// 以Post方式提交表单,默认get方式
con
.
setDoInput
(
true
);
con
.
setDoOutput
(
true
);
con
.
setUseCaches
(
false
);
// post方式不能使用缓存
// 设置请求头信息
con
.
setRequestProperty
(
"Connection"
,
"Keep-Alive"
);
con
.
setRequestProperty
(
"Charset"
,
"UTF-8"
);
// 设置边界
String
BOUNDARY
=
"----------"
+
System
.
currentTimeMillis
();
con
.
setRequestProperty
(
"Content-Type"
,
"multipart/form-data; boundary="
+
BOUNDARY
);
// 请求正文信息
// 第一部分:
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"--"
);
// 必须多两道线
sb
.
append
(
BOUNDARY
);
sb
.
append
(
"\r\n"
);
sb
.
append
(
"Content-Disposition: form-data;name=\"file\";filename=\""
+
file
.
getName
()
+
"\"\r\n"
);
sb
.
append
(
"Content-Type:application/octet-stream\r\n\r\n"
);
byte
[]
head
=
sb
.
toString
().
getBytes
(
"utf-8"
);
// 获得输出流
OutputStream
out
=
new
DataOutputStream
(
con
.
getOutputStream
());
// 输出表头
out
.
write
(
head
);
// 文件正文部分
// 把文件已流文件的方式 推入到url中
DataInputStream
in
=
new
DataInputStream
(
new
FileInputStream
(
file
));
int
bytes
=
0
;
byte
[]
bufferOut
=
new
byte
[
1024
];
// 1M
while
((
bytes
=
in
.
read
(
bufferOut
))
!=
-
1
)
{
out
.
write
(
bufferOut
,
0
,
bytes
);
}
in
.
close
();
// 结尾部分
byte
[]
foot
=
(
"\r\n--"
+
BOUNDARY
+
"--\r\n"
).
getBytes
(
"utf-8"
);
// 定义最后数据分隔线
out
.
write
(
foot
);
out
.
flush
();
out
.
close
();
StringBuffer
buffer
=
new
StringBuffer
();
BufferedReader
reader
=
null
;
try
{
// 定义BufferedReader输入流来读取URL的响应
reader
=
new
BufferedReader
(
new
InputStreamReader
(
con
.
getInputStream
()));
String
line
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
// System.out.println(line);
buffer
.
append
(
line
);
}
if
(
result
==
null
)
{
result
=
buffer
.
toString
();
}
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
"发送POST请求出现异常!"
+
e
);
e
.
printStackTrace
();
throw
new
IOException
(
"数据读取异常"
);
}
finally
{
if
(
reader
!=
null
)
{
reader
.
close
();
}
}
return
result
;
}
static
class
Data
{
...
...
src/main/java/com/egolm/common/HttpsUtil.java
View file @
02171662
...
...
@@ -294,106 +294,7 @@ public class HttpsUtil {
return
result
;
}
/**
* 模拟form表单的形式 ,上传文件 以输出流的形式把文件写入到url中,然后用输入流来获取url的响应
*
* @param url 请求地址 form表单url地址
* @param filePath 文件在服务器保存路径
* @return String url的响应信息返回值
* @throws IOException
*/
public
static
String
doPostByFile
(
String
url
,
String
filePath
)
throws
IOException
{
String
result
=
null
;
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
()
||
!
file
.
isFile
())
{
throw
new
IOException
(
"文件不存在"
);
}
/**
* 第一部分
*/
URL
urlObj
=
new
URL
(
url
);
// 连接
HttpURLConnection
con
=
(
HttpURLConnection
)
urlObj
.
openConnection
();
/**
* 设置关键值
*/
con
.
setRequestMethod
(
"POST"
);
// 以Post方式提交表单,默认get方式
con
.
setDoInput
(
true
);
con
.
setDoOutput
(
true
);
con
.
setUseCaches
(
false
);
// post方式不能使用缓存
// 设置请求头信息
con
.
setRequestProperty
(
"Connection"
,
"Keep-Alive"
);
con
.
setRequestProperty
(
"Charset"
,
"UTF-8"
);
// 设置边界
String
BOUNDARY
=
"----------"
+
System
.
currentTimeMillis
();
con
.
setRequestProperty
(
"Content-Type"
,
"multipart/form-data; boundary="
+
BOUNDARY
);
// 请求正文信息
// 第一部分:
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"--"
);
// 必须多两道线
sb
.
append
(
BOUNDARY
);
sb
.
append
(
"\r\n"
);
sb
.
append
(
"Content-Disposition: form-data;name=\"file\";filename=\""
+
file
.
getName
()
+
"\"\r\n"
);
sb
.
append
(
"Content-Type:application/octet-stream\r\n\r\n"
);
byte
[]
head
=
sb
.
toString
().
getBytes
(
"utf-8"
);
// 获得输出流
OutputStream
out
=
new
DataOutputStream
(
con
.
getOutputStream
());
// 输出表头
out
.
write
(
head
);
// 文件正文部分
// 把文件已流文件的方式 推入到url中
DataInputStream
in
=
new
DataInputStream
(
new
FileInputStream
(
file
));
int
bytes
=
0
;
byte
[]
bufferOut
=
new
byte
[
1024
];
// 1M
while
((
bytes
=
in
.
read
(
bufferOut
))
!=
-
1
)
{
out
.
write
(
bufferOut
,
0
,
bytes
);
}
in
.
close
();
// 结尾部分
byte
[]
foot
=
(
"\r\n--"
+
BOUNDARY
+
"--\r\n"
).
getBytes
(
"utf-8"
);
// 定义最后数据分隔线
out
.
write
(
foot
);
out
.
flush
();
out
.
close
();
StringBuffer
buffer
=
new
StringBuffer
();
BufferedReader
reader
=
null
;
try
{
// 定义BufferedReader输入流来读取URL的响应
reader
=
new
BufferedReader
(
new
InputStreamReader
(
con
.
getInputStream
()));
String
line
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
// System.out.println(line);
buffer
.
append
(
line
);
}
if
(
result
==
null
)
{
result
=
buffer
.
toString
();
}
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
"发送POST请求出现异常!"
+
e
);
e
.
printStackTrace
();
throw
new
IOException
(
"数据读取异常"
);
}
finally
{
if
(
reader
!=
null
)
{
reader
.
close
();
}
}
return
result
;
}
/**
* 调用证书进行退款 WX提供
...
...
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