@@ -228,6 +228,7 @@ public class ClientService extends Service implements SdtLogic.ICallBack,
228
228
private ConcurrentHashMap <Long , Call > uploadingMap ;
229
229
230
230
private DefaultPortraitProvider defaultPortraitProvider ;
231
+ private final Map <String , String > protoHttpHeaderMap = new ConcurrentHashMap <>();
231
232
232
233
@ RequiresApi (api = Build .VERSION_CODES .LOLLIPOP )
233
234
private class ClientServiceStub extends IRemoteClient .Stub {
@@ -417,6 +418,7 @@ public void setProtoUserAgent(String userAgent) throws RemoteException {
417
418
@ Override
418
419
public void addHttpHeader (String header , String value ) throws RemoteException {
419
420
ProtoLogic .addHttpHeader (header , value );
421
+ protoHttpHeaderMap .put (header , value );
420
422
}
421
423
422
424
@ Override
@@ -4963,7 +4965,15 @@ private void uploadFile(long messageId, String filePath, byte[] data, String upl
4963
4965
}
4964
4966
RequestBody fileBody = new UploadFileRequestBody (requestBody , callback ::onProgress );
4965
4967
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 ();
4967
4977
Call call = okHttpClient .newCall (request );
4968
4978
call .enqueue (new Callback () {
4969
4979
@ Override
@@ -5020,9 +5030,16 @@ private void uploadQiniu(long messageId, String uploadUrl, String remoteUrl, Str
5020
5030
mb .addFormDataPart ("file" , "fileName" , fileBody );
5021
5031
mb .setType (MediaType .parse ("multipart/form-data" ));
5022
5032
RequestBody body = mb .build ();
5023
- Request .Builder requestBuilder = new Request .Builder ().url (uploadUrl ).post (body );
5024
5033
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 ());
5026
5043
call .enqueue (new Callback () {
5027
5044
@ Override
5028
5045
public void onFailure (Call call , IOException e ) {
0 commit comments