Skip to content

Commit fdafb6a

Browse files
committed
支持 java 层进行大文件上传时,添加自定义 header
1 parent acbd78c commit fdafb6a

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

client/src/main/java/cn/wildfirechat/client/ClientService.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ public class ClientService extends Service implements SdtLogic.ICallBack,
228228
private ConcurrentHashMap<Long, Call> uploadingMap;
229229

230230
private DefaultPortraitProvider defaultPortraitProvider;
231+
private final Map<String, String> protoHttpHeaderMap = new ConcurrentHashMap<>();
231232

232233
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
233234
private class ClientServiceStub extends IRemoteClient.Stub {
@@ -417,6 +418,7 @@ public void setProtoUserAgent(String userAgent) throws RemoteException {
417418
@Override
418419
public void addHttpHeader(String header, String value) throws RemoteException {
419420
ProtoLogic.addHttpHeader(header, value);
421+
protoHttpHeaderMap.put(header, value);
420422
}
421423

422424
@Override
@@ -4963,7 +4965,15 @@ private void uploadFile(long messageId, String filePath, byte[] data, String upl
49634965
}
49644966
RequestBody fileBody = new UploadFileRequestBody(requestBody, callback::onProgress);
49654967

4966-
Request request = new Request.Builder().url(uploadUrl).put(fileBody).build();
4968+
Request.Builder builder = new Request.Builder();
4969+
builder.url(uploadUrl);
4970+
builder.put(fileBody);
4971+
if (!protoHttpHeaderMap.isEmpty()) {
4972+
for (Map.Entry<String, String> entry : protoHttpHeaderMap.entrySet()) {
4973+
builder.addHeader(entry.getKey(), entry.getValue());
4974+
}
4975+
}
4976+
Request request = builder.build();
49674977
Call call = okHttpClient.newCall(request);
49684978
call.enqueue(new Callback() {
49694979
@Override
@@ -5020,9 +5030,16 @@ private void uploadQiniu(long messageId, String uploadUrl, String remoteUrl, Str
50205030
mb.addFormDataPart("file", "fileName", fileBody);
50215031
mb.setType(MediaType.parse("multipart/form-data"));
50225032
RequestBody body = mb.build();
5023-
Request.Builder requestBuilder = new Request.Builder().url(uploadUrl).post(body);
50245033

5025-
Call call = okHttpClient.newCall(requestBuilder.build());
5034+
Request.Builder builder = new Request.Builder();
5035+
builder.url(uploadUrl);
5036+
builder.post(body);
5037+
if (!protoHttpHeaderMap.isEmpty()) {
5038+
for (Map.Entry<String, String> entry : protoHttpHeaderMap.entrySet()) {
5039+
builder.addHeader(entry.getKey(), entry.getValue());
5040+
}
5041+
}
5042+
Call call = okHttpClient.newCall(builder.build());
50265043
call.enqueue(new Callback() {
50275044
@Override
50285045
public void onFailure(Call call, IOException e) {

0 commit comments

Comments
 (0)