Skip to content

Commit bcc05c2

Browse files
committed
feat: 兼容 https(SSL) 接口
旧版本的作者没有考虑https,此版本兼容了https
1 parent a2119c6 commit bcc05c2

4 files changed

Lines changed: 23 additions & 11 deletions

File tree

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@ GPLv2具有很强的传染性,选用这个开源协议并不是我定的,而
3737
<dependency>
3838
<groupId>net.renfei</groupId>
3939
<artifactId>discuz-ucenter-api-for-java</artifactId>
40-
<version>1.0.4</version>
40+
<version>1.0.5</version>
4141
</dependency>
4242
```
4343

44-
如果你使用的是传统方式,需要下载```Jar```包,放入```lib```文件夹,下载地址:[discuz-ucenter-api-for-java-1.0.4.jar
45-
](https://github.com/renfei/discuz-ucenter-api-for-java/releases/download/1.0.4/discuz-ucenter-api-for-java-1.0.4.jar)
44+
如果你使用的是传统方式,需要下载```Jar```包,放入```lib```文件夹,下载地址:[discuz-ucenter-api-for-java-1.0.5.jar
45+
](https://github.com/renfei/discuz-ucenter-api-for-java/releases/download/1.0.5/discuz-ucenter-api-for-java-1.0.5.jar)
4646

4747
## 使用
4848

4949
为了跟```SpringBoot```更好的集成,我对原项目进行了修改,原项目是修改配置文件,我修改为了实例化时传递参数的方式
5050

51+
## Https(SSL) 站点
52+
如果你的站点是```https```的,必须使用版本号```1.0.5```以上,旧版本的作者没有考虑```https```,我修改了代码兼容了```https```
53+
5154
### 实例化
5255

5356
实例化一个客户端```net.renfei.discuz.ucenter.client.Client```,参数依次是:UCenter接口地址、IP地址、通讯Key、APPID、Connect。

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>net.renfei</groupId>
88
<artifactId>discuz-ucenter-api-for-java</artifactId>
9-
<version>1.0.4</version>
9+
<version>1.0.5</version>
1010
<packaging>jar</packaging>
1111
<name>discuz-ucenter-api-for-java</name>
1212
<url>https://github.com/renfei/discuz-ucenter-api-for-java</url>

src/main/java/net/renfei/discuz/ucenter/client/Client.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.renfei.discuz.ucenter.client;
22

3+
import javax.net.ssl.SSLSocket;
4+
import javax.net.ssl.SSLSocketFactory;
35
import java.io.BufferedReader;
46
import java.io.IOException;
57
import java.io.InputStream;
@@ -317,7 +319,7 @@ protected String ucFopen2(String url, int limit, String post, String cookie, boo
317319
protected String ucFopen(String url, int limit, String post, String cookie, boolean bysocket, String ip, int timeout, boolean block) {
318320
StringBuilder returnString = new StringBuilder();
319321

320-
URL matches;
322+
URL matches = null;
321323
String host = "";
322324
String path = "";
323325
int port = 80;
@@ -337,7 +339,7 @@ protected String ucFopen(String url, int limit, String post, String cookie, bool
337339

338340
StringBuffer out = new StringBuffer();
339341
if (post != null && post.length() > 0) {
340-
out.append("POST ").append(path).append(" HTTP/1.0\r\n");
342+
out.append("POST ").append(path).append(" HTTP/1.1\r\n");
341343
out.append("Accept: */*\r\n");
342344
out.append("Accept-Language: zh-cn\r\n");
343345
out.append("Content-Type: application/x-www-form-urlencoded\r\n");
@@ -349,7 +351,7 @@ protected String ucFopen(String url, int limit, String post, String cookie, bool
349351
out.append("Cookie: \r\n\r\n");
350352
out.append(post);
351353
} else {
352-
out.append("GET path HTTP/1.0\r\n");
354+
out.append("GET path HTTP/1.1\r\n");
353355
out.append("Accept: */*\r\n");
354356
//out .= "Referer: boardurl\r\n";
355357
out.append("Accept-Language: zh-cn\r\n");
@@ -360,7 +362,13 @@ protected String ucFopen(String url, int limit, String post, String cookie, bool
360362
}
361363

362364
try {
363-
Socket fp = new Socket(ip != null && ip.length() > 10 ? ip : host, port);
365+
Socket fp = null;
366+
String socketHost = ip != null && ip.length() > 10 ? ip : host;
367+
if ("https".equals(matches.getProtocol().toLowerCase())) {
368+
fp = SSLSocketFactory.getDefault().createSocket(socketHost, port);
369+
} else {
370+
fp = new Socket(socketHost, port);
371+
}
364372
if (!fp.isConnected()) {
365373
System.out.println("net.renfei.discuz.ucenter.client.Client.ucFopen:\n"
366374
+ "Socket Not Connected\n");

src/test/java/Test.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ public class Test {
2525
* @param args
2626
*/
2727
public static void main(String[] args) {
28-
Client uc = new Client("http://localhost/uc_server",null,"123456","3","");
29-
// testLogin(uc);
28+
// Client uc = new Client("https://bbs.renfei.net/uc_server",null,"123456","2","");
29+
Client uc = new Client("https://bbs.afuiot.com/uc_server",null,"123456","6","");
30+
testLogin(uc);
3031
// synlogin(uc);
3132
String s = uc.ucAuthcode("8485m7QEfsvnOg9tKGvAsxlwXpAzZU6LhFA04pD6N0XIYG1cJVDh2Th83Qcci130UPHbXp+UNG0","DECODE");
3233
System.out.println(s);
@@ -40,7 +41,7 @@ public static void synlogin(Client client){
4041
}
4142

4243
public static void testLogin(Client client){
43-
String result = client.ucUserLogin("renfei", "password");
44+
String result = client.ucUserLogin("renfei", "1123");
4445

4546
LinkedList<String> rs = XMLHelper.ucUnserialize(result);
4647
if(rs.size()>0){

0 commit comments

Comments
 (0)