{"ticket":"gQFt7zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0F6dFktTVhsSV90YXNVX1ZtUlhSAAIE5hxiVwMEPAAAAA==",
參數與ticket之間是一一對應的,這也就達到了生成用戶海報的專屬二維碼了,至於這個參數的選定,本人能夠給一個建議,將用戶的openId+當前時間做爲參數,返回的ticket和用戶就能夠達到一一對應的想過了,當二維碼過時,數據庫更新ticket這個數據就能夠了,或者用戶每次獲取海報的時候就從新更新一個二維碼,反正臨時的不少。其餘用戶掃這個二維碼的時候微信會將二維碼的ticket返回給咱們,再根據ticket和openId的對應關係就能夠知道當前被掃用戶是誰了。
//post請求
public
static
String sendPost(String
param
, String
url
) {
PrintWriter
out
=
null
;
BufferedReader
in
=
null
;
String
result
=
""
;
try
{
URL
realUrl
=
new
URL(
url
);
// 打開和URL之間的鏈接
URLConnection
conn
=
realUrl
.openConnection();
// 設置通用的請求屬性
conn
.setRequestProperty(
"accept"
,
"*/*"
);
conn
.setRequestProperty(
"connection"
,
"Keep-Alive"
);
conn
.setRequestProperty(
"user-agent"
,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"
);
// 發送POST請求必須設置以下兩行
conn
.setDoOutput(
true
);
conn
.setDoInput(
true
);
// 獲取URLConnection對象對應的輸出流
// out = new PrintWriter(conn.getOutputStream());
out
=
new
PrintWriter(
new
OutputStreamWriter(
conn
.getOutputStream(),
"utf-8"
));
// 發送請求參數
out
.print(
param
);
// flush輸出流的緩衝
out
.flush();
// 定義BufferedReader輸入流來讀取URL的響應
in
=
new
BufferedReader(
new
InputStreamReader(
conn
.getInputStream(),
"UTF-8"
));
String
line
;
while
((
line
=
in
.readLine()) !=
null
) {
result
+=
line
;
}
}
catch
(Exception
e
) {
System.
out
.println(
"發送 POST 請求出現異常!"
+
e
);
e
.printStackTrace();
}
// 使用finally塊來關閉輸出流、輸入流
finally
{
try
{
if
(
out
!=
null
) {
out
.close();
}
if
(
in
!=
null
) {
in
.close();
}
}
catch
(IOException
ex
) {
ex
.printStackTrace();
}
}
return
result
;
}
//根據url下載文件,參數(文件網址,存文件的本地地址)
public
static
Boolean downloadFile(String
urlString
, String
filePath
){
// 構造URL
URL
url
;
try
{
url
=
new
URL(
urlString
);
// 打開鏈接
URLConnection
con
;
try
{
con
=
url
.openConnection();
// 輸入流
InputStream
is
=
con
.getInputStream();
// 1K的數據緩衝
byte
[]
bs
=
new
byte
[1024];
// 讀取到的數據長度
int
len
;
// 輸出的文件流
OutputStream
os
=
new
FileOutputStream(
filePath
);
// 開始讀取
while
((
len
=
is
.read(
bs
)) != -1) {
os
.write(
bs
, 0,
len
);
}
// 完畢,關閉全部連接
os
.close();
is
.close();
return
true
;
}
catch
(IOException
e
) {
//
TODO
Auto-generated catch block
e
.printStackTrace();
return
false
;
}
}
catch
(MalformedURLException
e
) {
//
TODO
Auto-generated catch block
e
.printStackTrace();
return
false
;
}