PostFileWithRequest<>我遇到了问题ServiceStack中的方法,即文件字段的名称被硬编码为单词“upload”>
部分数据流
Content-Disposition: form-data;name="upload";filename="Julie.mp3"
这是来自ServiceClientBase.cs文件中的第407行
stream.Write("Content-Disposition: form-data;name=\"{0}\";filename=\"{1}\"{2}{3}".FormatWith(new object[] { "upload", fileName, text, text }));
这包含在虚方法中,但我不知道如何在派生类中更改它,因为我的新类无法访问其他方法。
public virtual TResponse PostFileWithRequest<TResponse>(string relativeOrAbsoluteUrl, Stream fileToUpload, string fileName, object request)
有什么想法吗?
这看起来像是一个错误,作为表单数据的名称;名称应该是可配置的,而不是硬编码。
在我的情况下,我需要将文件名为“File”,以便使用特定的API。
克里斯
答案 0 :(得分:1)
我向ServiceStack (虽然是v4)提交了pull request,该文件已被接受,并将包含在下一版本4.0.14中。
这为fieldName
方法添加了PostFileWithRequest<TResponse>
的可选参数,允许您指定字段名称,而不是卡在upload
。
所以方法的新签名:
public virtual TResponse PostFileWithRequest<TResponse>(string relativeOrAbsoluteUrl, Stream fileToUpload, string fileName, object request, string fieldName = "upload")