- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经成功实现了一个上传 multipart/form-data 文件的网络请求。大概是由于我们在 OkHttp 客户端上设置的日志级别,正在记录文件流。这通常不会有问题,但是日志输出的长度和文件的二进制性质导致 logcat 崩溃:
2020-05-05 14:29:54.112 17172-17273/com.mobile.qa D/OkHttp: --> POST https://some.url.com/messages/attachments/add
2020-05-05 14:29:54.112 17172-17273/com.mobile.qa D/OkHttp: Content-Type: multipart/form-data; boundary=a95001c6-60d9-45d7-ae12-2bcc469932ba
2020-05-05 14:29:54.113 17172-17273/com.mobile.qa D/OkHttp: Content-Length: 1560240
2020-05-05 14:29:54.113 17172-17273/com.mobile.qa D/OkHttp: Authorization: Bearer 010DB4521D02851702F831C178A3C95813FC2A8CEC8765A3E0F9544CB70DCA14CDC31CB08F4255259A9484D563A6CB423ABE018275CBE24C967E9560B590A5D4F73AE517E37EC3B72D74C8A14DF3F73C8EEF6F77CB4D8A74BB0DF8710C696E75F9B2357D5FBB57C8EC1E49B4CCCB51B1E78B1018866F3BB3E81188AECC6932B511CD025EDD7074CEB40B00B0655030ACB0BA9C51573B56AF7BC39310835EF24907F0A47B8A469A48596ACDFA55BB8924DCF7D1AE455B9EC029F3F3EAC1255D4F8ADB044EBC71545E5E330A90B7FD0A1C0DF0DF416CDBEE32BD5F1E9370000AAE2F6ED367C640204DF0A962CE4F0807F32F7CB9B95FD80A7E45B8866FD4516D7ED77A3740F8D6CCEBF2434D26915AF69DC73515C48398C2510C981AA2A96B230A2FBBC3040179CB85565B1E31E1F960407831F9B03BE29225EFF874DED24DABD50B56B2AEE28B6639D33947FBFCEC2EA3B083B4820948449C8B67913CF680B3C3B0C69A73C266765BA9A5A18C0A87BF24EC23B8F8EF66A5FA9A7A90515ECEFC475536B6CF335B8A520452F8F0244EF43A581BC89223814DC687533EE06662113C28D0E7A9B176CC40E610455FC4BB53AF8B8F7BC42E6EB2B3250EEB98B72C99BCBBB6F50AA587CA1BE0BD833021F20F77C04458475DAB72C7EE5561F3A5E8AC44FAE267E614E8604B36808E70CB2BA44BE7BF3707DE945A51D8DD269FF5E4FC2330A8421F5928DD318224FD90F6C481FB638BBE15C4E626B4D44C0B6975C00A24E751926A765F072FC19FA9E5387CEFCE1EAE5D8C2072B01FC1CCAFEB1E975C39D7BD66DA4B16ACA6518946915AA5D43F8787F6DE64FE9BAA9234C9620B4E00D9BB33C460CC
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: --a95001c6-60d9-45d7-ae12-2bcc469932ba
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: Content-Disposition: form-data; name="attachmentUpload"; filename="with_extension.pdf"
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: Content-Type: application/pdf
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: Content-Length: 1560010
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: %PDF-1.3
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: %���������
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: 4 0 obj
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: << /Length 5 0 R /Filter /FlateDecode >>
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: stream
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: x��ݎ\7r���S��q���G�6�z����X{�B;�V��X�%����ȳ��/���>ݚ�4�^?��b�XU,����c����~٦����=�R�k�V��+���O�O|ڦ�&�>��<X��Oߧv�fnF���o�?C�o?���Ƕ;����D�`������f1:ﻕ��.�A���w��jP͋�-��u�q��<����h����}h�{��TEX甎Co|��?��w�+�_:�<���$�a��}�ⱄ<?�|��_��ڟ�v��S?�c{����v�w|�߹;M�:������o^��i��m���������oT�ڻ���o���U�5�段U�/!�݃�MT�ѿ��
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: c[Z^?���U���kL]�^?�dߧBs�xY����j_�[��W6/7e�^�hC^?w�d]�K�������^?��o�C�.���;�ȩ�(�_5�"�����_|�.�cO���;���M�DX�۸���"���A}0>y^?i�4�W1i��F���`��gL�K)�;x-eC�C~�����~�b`٭�Jø�͕Ŷv�/6)Rw�nl_ݷӖ�^?���ˌY��_v���,3D�2q�_�Z^?�2Y�M�T��j����0�l"U��^?s��j��P��%l�&'p��w��@��br��'?�
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: ���̬N�v�1�m?u�i��ȸ�ec؎�ٸN�}�q��f�*ͧkY^L����p1�"���zZ:5s��6������}3�|3rK��z����/д^L�a��ʄ�;G�R��GSO=^L:�M=F~�$�AإPn`�fby�̳�yٖa��v�1�Nn^?\�j���`.�eM��VV�B��;����K"�i�O�o�v��8�Ƹ�'�k���>��%���x��@���D�@���Mk�3��;m�&�K�n;��n9-L�w�0��̈́�6�q=�k�:{�idV��;&�������4R���Tij\*2r�V ���h��d1j�*�<83>�nF48C�C@�h5--f�]P����^�v�
2020-05-05 14:29:54.285 17172-17273/com.mobile.qa D/OkHttp: �<8��yAM/
...
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: �/pUY�SFZZϏ�j�]i)v*��:t��rc����X4���F�|���"H�|ϟP��t�a)Ua9�b���Q+��rX����$�(���L.C�ʍ��Sʜ���.���������(�^���ގ#����^MG�>��o���"ija�H�v���u���g<UU�i x�J�7�3�H8���d���_n/L?v�'�Q�k[�X�wh�e* �'���B�CA�GW/�}^?�j��}���D)���{Mm��4{`n�ɩ��볶/���}�����%���,��_�̯^�Cttl�lg0�9pE�����J�1�|��1R��"Ή��*�^?�\���2�t��]�N�������J/�6,���?9[�|�����T����#��*����u|�H����lqE(!�@��F#H��p�X+� ]�^�9�.-��S<��Q�����,�М����g�L�ct�͟�c62��i������YOa(�ج�,�B�ݪ&Eׅ���|\�)���YT@#�^L���� ���S:�V�$re�9�5zh4L&��H[p���X��ـ�;���@F3����0Z��_�3����M��!�[8�+#��Q~8���AuHjkә;J�9���V}ߴ$D[��k�ކne��`�L�=QV�� �������1ma����^?v[���r-���A�e�ƽ�A�:���_�DL�$�+�\���)^��;�wg���;���Yǽ礳>X/�;����3�ȧ6�[Z�7���6�r��ڜj^����������|��6{rlC��l����Ur19/�{F�M�u��2M�T�m9^��c^�n�������vQ��]L:@颅���o���ޞK#����j��t����ޕA��w�����-�(um�s�U�3$zeN��X�_^:ٮ�w��V襩J�DR��� 2;ʫ�Z
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: << /Producer 56 0 R /CreationDate 57 0 R /ModDate 57 0 R >>
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: endobj
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0000007598 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0000007617 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0000007750 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0001499540 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0001500904 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0001541372 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: 0001558520 00000 n
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: %%EOF
2020-05-05 14:29:54.330 17172-17273/com.mobile.qa D/OkHttp: --> END POST (1560240-byte body)
read: unexpected EOF!
在 read: unexpected EOF!
行之后没有记录任何内容。
以下是 OkHttp 客户端的设置方式:
private val OK_HTTP_INSTANCE: OkHttpClient =
OkHttpClient.Builder()
.connectTimeout(30L, TimeUnit.SECONDS)
.writeTimeout(30L, TimeUnit.SECONDS)
.readTimeout(30L, TimeUnit.SECONDS)
.cookieJar(CookieJarFactory.cookieJar)
.connectionSpecs(listOf(ConnectionSpec.MODERN_TLS, ConnectionSpec.COMPATIBLE_TLS))
.addInterceptor(AuthInterceptor())
.addInterceptor(RefreshInterceptor())
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.build()
这是 POST 请求的定义:
@Multipart
@POST("messages/attachments/add")
fun addAttachment(@Part attachment: MultipartBody.Part): Single<Attachment>
最佳答案
您可以在标题中查找特定的内容类型。
或者添加自定义头部@Headers("multipart: true")
@Headers("multipart: true")
@Multipart
@POST("messages/attachments/add")
fun addAttachment(@Part attachment: MultipartBody.Part): Single<Attachment>
然后在拦截器中检查自定义 header 并相应地设置日志记录级别
OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder();
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
okHttpClientBuilder.addInterceptor(chain -> {
Request original = chain.request();
Request request = original.newBuilder().build();
boolean hasMultipart = request.headers().names().contains("multipart");
logging.setLevel(hasMultipart ? HttpLoggingInterceptor.Level.NONE : HttpLoggingInterceptor.Level.BODY);
return chain.proceed(request);
}).build();
okHttpClientBuilder.addInterceptor(logging);
关于android - 如何阻止 OkHttp 在 Android 中记录多部分/表单数据上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61621731/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!