You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/05/30 08:10:44 UTC
incubator-weex git commit: * [Android] Add a new method to
StreamModule
Repository: incubator-weex
Updated Branches:
refs/heads/master f855f909a -> 9313072bf
* [Android] Add a new method to StreamModule
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/9313072b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/9313072b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/9313072b
Branch: refs/heads/master
Commit: 9313072bfdac0882025e6dee7f3e2108c57225bf
Parents: f855f90
Author: YorkShen <sh...@gmail.com>
Authored: Wed May 30 14:25:28 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed May 30 14:25:28 2018 +0800
----------------------------------------------------------------------
.../taobao/weex/adapter/DefaultUriAdapter.java | 14 ++++--
.../com/taobao/weex/adapter/URIAdapter.java | 1 +
.../com/taobao/weex/http/WXStreamModule.java | 52 ++++++++++----------
3 files changed, 37 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
index c5cc31a..de77e87 100644
--- a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
+++ b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
@@ -37,14 +37,20 @@ public class DefaultUriAdapter implements URIAdapter {
@NonNull
@Override
public Uri rewrite(WXSDKInstance instance, String type, Uri uri) {
- if (TextUtils.isEmpty(instance.getBundleUrl())) {
+ return rewrite(instance.getBundleUrl(), type, uri);
+ }
+
+ @NonNull
+ @Override
+ public Uri rewrite(String bundleURL, String type, Uri uri) {
+ if (TextUtils.isEmpty(bundleURL)) {
return uri;
}
- Uri base = Uri.parse(instance.getBundleUrl());
+ Uri base = Uri.parse(bundleURL);
Uri.Builder resultBuilder = uri.buildUpon();
-
- if (uri.isRelative()) {
+
+ if (uri.isRelative()) {
//When uri is empty, means use the base url instead. Web broswer behave this way.
if(uri.getEncodedPath().length() == 0){
if(URIAdapter.IMAGE.equals(type)){
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
index f2cdbde..cdac2fd 100644
--- a/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
+++ b/android/sdk/src/main/java/com/taobao/weex/adapter/URIAdapter.java
@@ -76,4 +76,5 @@ public interface URIAdapter {
* @return
*/
@NonNull Uri rewrite(WXSDKInstance instance, String type, Uri uri);
+ @NonNull Uri rewrite(String bundleURL, String type, Uri uri);
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9313072b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
index 7028698..d58f30e 100644
--- a/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
+++ b/android/sdk/src/main/java/com/taobao/weex/http/WXStreamModule.java
@@ -18,12 +18,13 @@
*/
package com.taobao.weex.http;
-import android.net.Uri;
+import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
-import com.alibaba.fastjson.JSON;
+import android.net.Uri;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.taobao.weex.WXEnvironment;
+import com.taobao.weex.WXSDKManager;
import com.taobao.weex.adapter.IWXHttpAdapter;
import com.taobao.weex.adapter.URIAdapter;
import com.taobao.weex.annotation.JSMethod;
@@ -33,7 +34,6 @@ import com.taobao.weex.common.WXModule;
import com.taobao.weex.common.WXRequest;
import com.taobao.weex.common.WXResponse;
import com.taobao.weex.utils.WXLogUtils;
-
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
@@ -42,8 +42,6 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
-
public class WXStreamModule extends WXModule {
public static final String STATUS_TEXT = "statusText";
@@ -98,7 +96,7 @@ public class WXStreamModule extends WXModule {
headers!=null?getHeader(headers,"Content-Type"):""
));
}
- }, null);
+ }, null, mWXSDKInstance.getInstanceId(), mWXSDKInstance.getBundleUrl());
}
/**
@@ -125,8 +123,10 @@ public class WXStreamModule extends WXModule {
*/
@JSMethod(uiThread = false)
public void fetch(JSONObject optionsObj , final JSCallback callback, JSCallback progressCallback){
+ fetch(optionsObj, callback, progressCallback, mWXSDKInstance.getInstanceId(), mWXSDKInstance.getBundleUrl());
+ }
-
+ public void fetch(JSONObject optionsObj , final JSCallback callback, JSCallback progressCallback, String instanceId, String bundleURL){
boolean invaildOption = optionsObj==null || optionsObj.getString("url")==null;
if(invaildOption){
if(callback != null) {
@@ -146,16 +146,16 @@ public class WXStreamModule extends WXModule {
if (method != null) method = method.toUpperCase();
Options.Builder builder = new Options.Builder()
- .setMethod(!"GET".equals(method)
- &&!"POST".equals(method)
- &&!"PUT".equals(method)
- &&!"DELETE".equals(method)
- &&!"HEAD".equals(method)
- &&!"PATCH".equals(method)?"GET":method)
- .setUrl(url)
- .setBody(body)
- .setType(type)
- .setTimeout(timeout);
+ .setMethod(!"GET".equals(method)
+ &&!"POST".equals(method)
+ &&!"PUT".equals(method)
+ &&!"DELETE".equals(method)
+ &&!"HEAD".equals(method)
+ &&!"PATCH".equals(method)?"GET":method)
+ .setUrl(url)
+ .setBody(body)
+ .setType(type)
+ .setTimeout(timeout);
extractHeaders(headers,builder);
final Options options = builder.createOptions();
@@ -175,7 +175,7 @@ public class WXStreamModule extends WXModule {
resp.put("data", null);
} else {
String respData = readAsString(response.originalData,
- headers != null ? getHeader(headers, "Content-Type") : ""
+ headers != null ? getHeader(headers, "Content-Type") : ""
);
try {
resp.put("data", parseData(respData, options.getType()));
@@ -191,7 +191,7 @@ public class WXStreamModule extends WXModule {
callback.invoke(resp);
}
}
- }, progressCallback);
+ }, progressCallback, instanceId, bundleURL);
}
Object parseData(String data, Options.Type type) throws JSONException{
@@ -260,23 +260,23 @@ public class WXStreamModule extends WXModule {
}
- private void sendRequest(Options options,ResponseCallback callback,JSCallback progressCallback){
+ private void sendRequest(Options options,ResponseCallback callback,JSCallback progressCallback,String instanceId, String bundleURL){
WXRequest wxRequest = new WXRequest();
wxRequest.method = options.getMethod();
- wxRequest.url = mWXSDKInstance.rewriteUri(Uri.parse(options.getUrl()), URIAdapter.REQUEST).toString();
+ wxRequest.url = WXSDKManager.getInstance().getURIAdapter().rewrite(bundleURL, URIAdapter.REQUEST,Uri.parse(options.getUrl())).toString();
wxRequest.body = options.getBody();
wxRequest.timeoutMs = options.getTimeout();
- wxRequest.instanceId = mWXSDKInstance.getInstanceId();
+ wxRequest.instanceId = instanceId;
- if(options.getHeaders()!=null)
+ if(options.getHeaders()!=null) {
if (wxRequest.paramMap == null) {
wxRequest.paramMap = options.getHeaders();
- }else{
+ } else {
wxRequest.paramMap.putAll(options.getHeaders());
}
+ }
-
- IWXHttpAdapter adapter = ( mAdapter==null && mWXSDKInstance != null) ? mWXSDKInstance.getWXHttpAdapter() : mAdapter;
+ IWXHttpAdapter adapter = ( mAdapter==null) ? WXSDKManager.getInstance().getIWXHttpAdapter() : mAdapter;
if (adapter != null) {
adapter.sendRequest(wxRequest, new StreamHttpListener(callback,progressCallback));
}else{