如何在HttpClient/MultipartFormDataContent中禁用base64编码的文件名 [英] How to disable base64-encoded filenames in HttpClient/MultipartFormDataContent

查看:296
本文介绍了如何在HttpClient/MultipartFormDataContent中禁用base64编码的文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用HttpClientMultipartFormDataContent POST到Java Web应用程序.我正在上传几个StringContents和一个文件,并使用HttpClient.PostAsync(String, HttpContent)方法使用MultipartFormDataContent.Add(HttpContent content, String name, String fileName)将其添加为StreamContent.

I'm using HttpClient to POST MultipartFormDataContent to a Java web application. I'm uploading several StringContents and one file which I add as a StreamContent using MultipartFormDataContent.Add(HttpContent content, String name, String fileName) using the method HttpClient.PostAsync(String, HttpContent).

这很好用,除非当我提供包含德语变音符号的 fileName 时(我尚未测试其他非ASCII字符).在这种情况下, fileName 已被base64编码.名为 99 2 LD 353 TempÄüöß-1.txt

This works fine, except when I provide a fileName that contains german umlauts (I haven't tested other non-ASCII characters yet). In this case, fileName is being base64-encoded. The result for a file named 99 2 LD 353 Temp Äüöß-1.txt

看起来像这样:

 __utf-8_B_VGVtcCDvv73vv73vv73vv71cOTkgMiBMRCAzNTMgVGVtcCDvv73vv73vv73vv70tMS50eHQ___

Java服务器在其UI中显示此编码文件名,这会使用户感到困惑.我无法进行任何服务器端更改.

The Java server shows this encoded file name in its UI, which confuses the users. I cannot make any server-side changes.

如何禁用此行为?任何帮助将不胜感激.

How do I disable this behavior? Any help would be highly appreciated.

提前谢谢!

推荐答案

我终于放弃了,并使用HttpWebRequest而不是HttpClient解决了任务.我必须手动构建标题和内容,但这使我可以忽略发送非ASCII文件名的标准.我最终将未编码的UTF-8文件名塞入filename标头中,这是服务器接受我的请求的唯一方法.

I finally gave up and solved the task using HttpWebRequest instead of HttpClient. I had to build headers and content manually, but this allowed me to ignore the standards for sending non-ASCII filenames. I ended up cramming unencoded UTF-8 filenames into the filename header, which was the only way the server would accept my request.

这篇关于如何在HttpClient/MultipartFormDataContent中禁用base64编码的文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆