支持文件上传

This commit is contained in:
tanghc
2019-05-14 19:27:16 +08:00
parent 4e842f9318
commit 6a4072a6c7
32 changed files with 420 additions and 82 deletions

View File

@@ -25,6 +25,7 @@ public class OpenClient {
private static final Log log = LogFactory.getLog(OpenClient.class);
private static final OpenConfig DEFAULT_CONFIG = new OpenConfig();
public static final String ERROR_RESPONSE_KEY = "error_response";
private String url;
private String appId;
@@ -110,6 +111,10 @@ public class OpenClient {
String method = request.getMethod();
String dataName = dataNameBuilder.build(method);
JSONObject jsonObject = JSON.parseObject(resp);
boolean errorResponse = jsonObject.containsKey(ERROR_RESPONSE_KEY);
if (errorResponse) {
dataName = ERROR_RESPONSE_KEY;
}
JSONObject data = jsonObject.getJSONObject(dataName);
T t = data.toJavaObject(request.getResponseClass());
t.setBody(data.toJSONString());

View File

@@ -6,7 +6,6 @@ import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.FormBody;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -26,8 +25,6 @@ import java.util.concurrent.TimeUnit;
* @author tanghc
*/
public class OpenHttp {
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
private Map<String, List<Cookie>> cookieStore = new HashMap<String, List<Cookie>>();
private OkHttpClient httpClient;

View File

@@ -3,6 +3,8 @@ package com.gitee.sop.sdk.common;
import com.gitee.sop.sdk.util.FileUtil;
import com.gitee.sop.sdk.util.MD5Util;
import lombok.Getter;
import lombok.Setter;
import java.io.File;
import java.io.IOException;
@@ -13,6 +15,8 @@ import java.io.Serializable;
* 文件上传类
* @author tanghc
*/
@Getter
@Setter
public class UploadFile implements Serializable {
private static final long serialVersionUID = -1100614660944996398L;
@@ -53,36 +57,4 @@ public class UploadFile implements Serializable {
private byte[] fileData;
private String md5;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public byte[] getFileData() {
return fileData;
}
public void setFileData(byte[] fileData) {
this.fileData = fileData;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
}

View File

@@ -0,0 +1,11 @@
package com.gitee.sop.sdk.model;
import lombok.Data;
/**
* @author tanghc
*/
@Data
public class DemoFileUploadModel {
private String remark;
}

View File

@@ -0,0 +1,13 @@
package com.gitee.sop.sdk.request;
import com.gitee.sop.sdk.response.DemoFileUploadResponse;
/**
* @author tanghc
*/
public class DemoFileUploadRequest extends BaseRequest<DemoFileUploadResponse> {
@Override
protected String method() {
return "demo.file.upload";
}
}

View File

@@ -0,0 +1,34 @@
package com.gitee.sop.sdk.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.ArrayList;
import java.util.List;
/**
* @author tanghc
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class DemoFileUploadResponse extends BaseResponse {
private List<FileMeta> files = new ArrayList();
@Data
public static class FileMeta {
public FileMeta(String filename, long size, String content) {
this.filename = filename;
this.size = size;
this.content = content;
}
public FileMeta() {
}
private String filename;
private long size;
private String content;
}
}

View File

@@ -0,0 +1 @@
file1 content

View File

@@ -0,0 +1 @@
file2 content...

View File

@@ -1,2 +0,0 @@
回忆起 20多年来我们一起走过的日子我就感到特别温馨、特别甜蜜。你第一次闯入我生命中的情景仿佛就在眼前……第一次偶然相遇是1996年5月那是一个夏风习习的夜晚我刚从工地回来同事就邀我一起去城建学院跳舞踏进舞厅的一瞬间在暗淡温柔的霓虹灯下你那清新脱俗的靓影一下子就深深的嵌入了我的心里。
记得大学时代,李春波的歌曲“小芳”响彻校园,那个叫小芳的村里姑娘,也深深的烙进了我的心底,成了我少年时的梦中偶像。二十多年来,我一直期盼着找到一个象歌曲中所唱的长得好看又善良、有着一双美丽的大眼睛和两条粗辫子的姑娘做我的爱人,但苦苦寻觅却难见芳踪,谁知众里寻她千百度,蓦然回首,那人却在灯火阑珊处……你就这样俏生生的突然出现在我眼前。当时,你穿着浅绿色的衬衣,正在与一位女同学翩翩起舞,两条又粗又长的辫子在身后灵巧的晃动。一曲终了,我急忙挤到你身边请你跳舞。当时的我还不太会跳舞,还好是一首慢四舞曲,我才没出洋相。拥着你在舞厅漫步,因为心情特别激动,又怕舞步不熟踩到你脚,我眼睛始终盯着脚下,不敢正视你的目光;好不容易平复心情与你搭讪,才打探到你是教育学院的学生舞曲就结束了。后面的舞曲不是我不会跳就是被你那“讨厌”的女同学捷足先登了,始终没有机会再次与你共舞,但我的心已经完完全全的被你牵走了。同事周云看我不再跳舞、心事重重的,就问我为什么,得知我心事后,自告奋勇的说下一曲他去邀请你同学,让我有机会请你跳舞。可没想到我那同事的“光头”会把你们吓跑,让上天给我们安排的第一次相遇就这样擦肩而过。

View File

@@ -1 +0,0 @@
红与青 时光如流水般,在我面前一闪而过,但我却只能暗暗叹息。 台灯下,小桌前,我坐在那儿,目光停在桌子上的那一个西瓜面前。十几年前的往事仿佛就在昨日。 小时候,我们兄弟几个围坐在一张破破的桌子前。一个勺子,半个西瓜,大家围着轮流舀着吃,大家的目光都聚焦在西瓜上,也许只有在这一刻,我们才不会那样的打闹。我们都想吃最中间的部分,最红的,最甜的部分,可是又如同大人世界般,我们显得那样腼腆。最后,总是你一小口我一小口,把那中间红红的果肉吞进肚子里,更埋下友谊的种子。 日子深一脚浅一脚的过,学习似乎成了我们唯一的公同语言,我们也从一个被别人称为“造反派”的顽童变为一个学子。甚至有时,在哪儿碰见也只会向对方点点头,丝毫没有了小时烈日下奔跑的情谊。家里的那张破破的桌子也不知去向,取而代之的是一张豪华的青瓷桌…… 小学毕业后那年暑假的最后一天,刚刚步入六年级的他们来送别我,我们围坐在桌边,夏日的炎热似乎把我们所有要诉说的话都给憋了回去,我们都沉默着。冰爽的西瓜成了我们释放的对象,我们不再像小时那样子吃西瓜,所有的西瓜都被切成了片,有红,有青。红红的那部分就在最上面,我们之间的友情就像这样火红。 没有告别仪式,只是如青般离开。 “悄悄,是别离的笙箫” 迈入初中,一切都是陌生,交流变少了,浑浑噩噩的梦中,我又梦见了他们。 关了台灯,寂静与黑暗容我沉思。 初一就要结束的几天里,夏天悄无声息得把炎热带来,家人们又带回来了西瓜,复习之余,我又捧起了半个西瓜,这一回就我一人沉默。握着勺子,一口一口舀着慢慢品味。“嗯?”与瓜皮连着的青色果肉吸引了我。“啊!原来他们比中间的果肉更惹人迷!” 我舀了一勺,“咔嚓”,是多么清脆。 “但我不能放歌”,时光荏苒,十几年前的往事似乎又模模糊糊。 他们如流水划过,留下一道青色的痕迹。青,是青。

View File

@@ -3,15 +3,23 @@ package com.gitee.sop.sdk;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gitee.sop.sdk.client.OpenClient;
import com.gitee.sop.sdk.common.UploadFile;
import com.gitee.sop.sdk.model.DemoFileUploadModel;
import com.gitee.sop.sdk.model.GetStoryModel;
import com.gitee.sop.sdk.request.CommonRequest;
import com.gitee.sop.sdk.request.DemoFileUploadRequest;
import com.gitee.sop.sdk.request.GetStoryRequest;
import com.gitee.sop.sdk.response.CommonResponse;
import com.gitee.sop.sdk.response.DemoFileUploadResponse;
import com.gitee.sop.sdk.response.GetStoryResponse;
import junit.framework.TestCase;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SdkTest extends TestCase {
@@ -70,4 +78,35 @@ public class SdkTest extends TestCase {
}
}
// 文件上传
@Test
public void testUpload() throws IOException {
DemoFileUploadRequest request = new DemoFileUploadRequest();
DemoFileUploadModel model = new DemoFileUploadModel();
model.setRemark("上传文件参数");
request.setBizModel(model);
List<UploadFile> files = new ArrayList<>();
String root = System.getProperty("user.dir");
System.out.println(root);
files.add(new UploadFile("file1", new File(root + "/src/main/resources/file1.txt")));
files.add(new UploadFile("file2", new File(root + "/src/main/resources/file2.txt")));
request.setFiles(files);
DemoFileUploadResponse response = client.execute(request);
System.out.println("--------------------");
if (response.isSuccess()) {
List<DemoFileUploadResponse.FileMeta> responseFiles = response.getFiles();
System.out.println("您上传的文件信息:");
responseFiles.stream().forEach(file->{
System.out.println(file);
});
} else {
System.out.println("errorCode:" + response.getCode() + ",errorMsg:" + response.getMsg());
}
System.out.println("--------------------");
}
}