fix(API数据源): 请求 form-data 失败

This commit is contained in:
taojinlong 2022-09-27 11:11:57 +08:00
parent 2532483a85
commit 5f09346929
3 changed files with 28 additions and 27 deletions

View File

@ -1,16 +1,15 @@
package io.dataease.controller.request.datasource; package io.dataease.controller.request.datasource;
import com.google.gson.JsonObject; import com.alibaba.fastjson.JSONObject;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Data @Data
public class ApiDefinitionRequest { public class ApiDefinitionRequest {
private List<Map<String, String>> headers = new ArrayList<>(); private List<Map<String, String>> headers = new ArrayList<>();
private Map<String, Object> body = new HashMap<>(); private JSONObject body = new JSONObject();
private AuthManager authManager = new AuthManager(); private AuthManager authManager = new AuthManager();

View File

@ -5,8 +5,9 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.gson.*; import com.google.common.reflect.TypeToken;
import com.google.gson.reflect.TypeToken; import com.google.gson.Gson;
import com.google.gson.JsonObject;
import io.dataease.controller.sys.response.BasicInfo; import io.dataease.controller.sys.response.BasicInfo;
import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.dto.dataset.DatasetTableFieldDTO;
import io.dataease.plugins.common.dto.datasource.TableDesc; import io.dataease.plugins.common.dto.datasource.TableDesc;
@ -161,11 +162,12 @@ public class ApiProvider extends Provider {
if (StringUtils.equalsAny(type, "Form_Data", "WWW_FORM")) { if (StringUtils.equalsAny(type, "Form_Data", "WWW_FORM")) {
if (apiDefinitionRequest.getBody().get("kvs") != null) { if (apiDefinitionRequest.getBody().get("kvs") != null) {
Map<String, String> body = new HashMap<>(); Map<String, String> body = new HashMap<>();
JsonArray kvsArr = JsonParser.parseString(apiDefinitionRequest.getBody().get("kvs").toString()).getAsJsonArray(); JSONObject bodyObj = JSONObject.parseObject(apiDefinitionRequest.getBody().toString());
JSONArray kvsArr = bodyObj.getJSONArray("kvs");
for (int i = 0; i < kvsArr.size(); i++) { for (int i = 0; i < kvsArr.size(); i++) {
JsonObject kv = kvsArr.get(i).getAsJsonObject(); JSONObject kv = kvsArr.getJSONObject(i);
if (kv.get("name") != null) { if (kv.containsKey("name")) {
body.put(kv.get("name").getAsString(), kv.get("value").getAsString()); body.put(kv.getString("name"), kv.getString("value"));
} }
} }
response = HttpClientUtil.post(apiDefinition.getUrl(), body, httpClientConfig); response = HttpClientUtil.post(apiDefinition.getUrl(), body, httpClientConfig);