Skip to content

Commit 116228c

Browse files
author
aaron
committed
企业 gk 带下划线导致 host 不合法的问题
1 parent 6b0e10d commit 116228c

File tree

5 files changed

+40
-8
lines changed

5 files changed

+40
-8
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ android {
7171
dimension "mode"
7272
applicationId "net.coding.program.enterprise"
7373
versionCode 298
74-
versionName "2.9.8.20190221.1"
74+
versionName "2.9.9.20190225.1"
7575
targetSdkVersion 21
7676

7777
// 信鸽依赖

app/src/enterprise/java/net/coding/program/EnterpriseApp.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ public static void setHost(@NonNull String enterpriseName) {
4747
AccountInfo.CustomHost customHost = AccountInfo.getCustomHost(GlobalData.getInstance());
4848
if (customHost.getHost().equalsIgnoreCase("s")) {
4949
if (TextUtils.isEmpty(enterpriseName)) {
50-
host = "http://e.coding.e.codingprod.net";
50+
host = "http://e.coding.codingprod.net";
5151
} else {
52-
host = String.format("http://%s.coding.e.codingprod.net", enterpriseName);
52+
host = String.format("http://%s.coding.codingprod.net", enterpriseName);
5353
}
5454
} else {
5555
if (enterpriseName.isEmpty()) {
@@ -64,6 +64,13 @@ public static void setHost(@NonNull String enterpriseName) {
6464
// host = "http://codingcorp.coding.com";
6565
Global.HOST = host;
6666
Global.HOST_API = Global.HOST + "/api";
67+
68+
if (enterpriseName.contains("_")) {
69+
int start = host.indexOf("://") + "://".length();
70+
int end = host.indexOf(".");
71+
Global.HOST = Global.HOST.substring(0, start) + "e" + Global.HOST.substring(end, Global.HOST.length());
72+
Global.HOST_API = Global.HOST + "/api";
73+
}
6774
}
6875

6976
private static void initPrivateHost(Context context) {

common-coding/src/main/java/net/coding/program/common/GlobalData.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,24 @@ public static String transformEnterpriseUri(String uri) {
3131
if (uri.startsWith("/p/")) {
3232
uri = String.format("/u/%s%s", getEnterpriseGK(), uri);
3333
} else {
34-
final String projectUrl = (Global.HOST + "/p/").toLowerCase();
35-
if (uri.toLowerCase().startsWith(projectUrl)) {
36-
int pathStart = Global.HOST.length();
37-
String uriPath = uri.substring(pathStart, uri.length());
38-
uri = String.format("/u/%s%s", getEnterpriseGK(), uriPath);
34+
String enterpriseGK = GlobalData.getEnterpriseGK();
35+
if (enterpriseGK.contains("_")) {
36+
int start = Global.HOST.indexOf("://") + "://".length();
37+
int end = Global.HOST.indexOf(".");
38+
final String underlineHost = Global.HOST.substring(0, start)
39+
+ GlobalData.getEnterpriseGK()
40+
+ Global.HOST.substring(end, Global.HOST.length());
41+
final String projectUrl = (underlineHost + "/p/").toLowerCase();
42+
if (uri.toLowerCase().startsWith(projectUrl)) {
43+
String uriPath = uri.substring(underlineHost.length(), uri.length());
44+
uri = String.format("/u/%s%s", getEnterpriseGK(), uriPath);
45+
}
46+
} else {
47+
final String projectUrl = (Global.HOST + "/p/").toLowerCase();
48+
if (uri.toLowerCase().startsWith(projectUrl)) {
49+
String uriPath = uri.substring(Global.HOST.length(), uri.length());
50+
uri = String.format("/u/%s%s", getEnterpriseGK(), uriPath);
51+
}
3952
}
4053
}
4154

common-coding/src/main/java/net/coding/program/common/network/MyAsyncHttpClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.loopj.android.http.ResponseHandlerInterface;
1212

1313
import net.coding.program.common.Global;
14+
import net.coding.program.common.GlobalData;
1415
import net.coding.program.common.model.AccountInfo;
1516
import net.coding.program.common.model.RequestData;
1617
import net.coding.program.common.util.LogUtils;
@@ -118,6 +119,11 @@ public static AsyncHttpClient createClient(Context context) {
118119
client.addHeader(item, mapHeaders.get(item));
119120
}
120121

122+
String enterpriseGK = GlobalData.getEnterpriseGK();
123+
if (enterpriseGK.contains("_")) {
124+
client.addHeader("Wxapp-Enterprise", enterpriseGK);
125+
}
126+
121127
// 防止 CSRF
122128
for (int i = 0; i < cookies.size(); i++) {
123129
Cookie eachCookie = cookies.get(i);

common-coding/src/main/java/net/coding/program/network/Network.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.loopj.android.http.PersistentCookieStore;
66

77
import net.coding.program.common.Global;
8+
import net.coding.program.common.GlobalData;
89
import net.coding.program.common.network.MyAsyncHttpClient;
910
import net.coding.program.common.widget.CommonListView;
1011

@@ -123,6 +124,11 @@ public static CodingRequest getRetrofit(Context context, CacheType cacheType, Co
123124
builder.addHeader("Referer", Global.HOST);
124125
}
125126

127+
String enterpriseGK = GlobalData.getEnterpriseGK();
128+
if (enterpriseGK.contains("_")) {
129+
builder.addHeader("Wxapp-Enterprise", enterpriseGK);
130+
}
131+
126132
request = builder.build();
127133
}
128134

0 commit comments

Comments
 (0)