Fix py local proxy bug

pull/137/head
FongMi 2 years ago
parent 2f2dd4d886
commit 8983bf5e38
  1. 16
      pyramid/src/main/java/com/undcover/freedom/pyramid/Spider.java

@ -1,12 +1,14 @@
package com.undcover.freedom.pyramid;
import android.content.Context;
import android.text.TextUtils;
import android.util.ArrayMap;
import com.chaquo.python.PyObject;
import com.github.catvod.net.OkHttp;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayInputStream;
@ -88,8 +90,8 @@ public class Spider extends com.github.catvod.crawler.Spider {
String content = list.get(3).toString();
JSONObject object = new JSONObject(action);
String url = object.optString("url");
Headers header = getHeader(object.getJSONObject("header"));
ArrayMap<String, String> param = getParam(object.getJSONObject("param"));
Headers header = getHeader(object.optString("header"));
ArrayMap<String, String> param = getParam(object.optString("param"));
if (object.optString("type").equals("stream")) {
return new Object[]{code, type, OkHttp.newCall(url, param, header).execute().body().byteStream()};
} else {
@ -98,9 +100,10 @@ public class Spider extends com.github.catvod.crawler.Spider {
}
}
private Headers getHeader(JSONObject object) {
private Headers getHeader(String header) throws JSONException {
Headers.Builder builder = new Headers.Builder();
if (object == null) return builder.build();
if (TextUtils.isEmpty(header)) return builder.build();
JSONObject object = new JSONObject(header);
for (Iterator<String> iterator = object.keys(); iterator.hasNext(); ) {
String key = iterator.next();
builder.add(key, object.optString(key));
@ -108,9 +111,10 @@ public class Spider extends com.github.catvod.crawler.Spider {
return builder.build();
}
private ArrayMap<String, String> getParam(JSONObject object) {
private ArrayMap<String, String> getParam(String param) throws JSONException {
ArrayMap<String, String> params = new ArrayMap<>();
if (object == null) return params;
if (TextUtils.isEmpty(param)) return params;
JSONObject object = new JSONObject(param);
for (Iterator<String> iterator = object.keys(); iterator.hasNext(); ) {
String key = iterator.next();
params.put(key, object.optString(key));

Loading…
Cancel
Save