- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想这是一个非常典型的场景:我们的解决方案公开了一个由 asp 核心 C# Controller 构建的 API,我们从中生成一个 swagger.json(使用 https://github.com/domaindrivendev/Swashbuckle.AspNetCore)。
我们通过使用 AutoRest ( https://github.com/Azure/autorest ) 生成的 C# 客户端在代码中调用此 api。
要执行可能较大的上传,我们希望使用我们的 AutoRest 生成的客户端将流从 C# 调用程序传递到我们的后端,以避免必须序列化/反序列化一个完整的对象。
我无法弄清楚如何将这两个工具结合使用,通过我们的 C# 代码调用来传递流。我尝试将它添加为参数,但这导致 AutoRest 为 System.IO.Stream 创建一个“Stream”模型,然后将其用作输入参数的类型,而不是仅保留原始类型。我试过将它作为 [FromBody] 参数传递,但除了上述问题之外,AutoRest 还会将其键入为 StringContent,然后再将其添加到请求而不是 StreamContent(可能是因为 SwaggerGen 没有将其识别为 Stream? ).
非常感谢任何建议 - 但如果我们不能这样做,我想我们总是可以手动使用 HTTPClient。
最佳答案
我们无法解决这个问题,最终得到了一个不太理想的解决方案,但(对我们而言)仍然比使用手动生成的 HTTPClient 更可取。
我们修改了自动生成的代码,添加了以下内容:
// BEGIN MANUALLY MODIFIED CODE
_httpRequest.Content = new StreamContent(inputStream);
// ensure that Expect Continue behaviour is always used for binary submissions
_httpRequest.Headers.ExpectContinue = true;
// END MANUALLY MODIFIED CODE
现在,我们只需将此手动生成的方法用于对该端点的所有调用,而不是自动生成的方法。这有几个重要的警告:
关于C# SwaggerGen + AutoRest - 如何发送流主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48821782/
这是我的 build.gradle buildscript { ext { springBootVersion = '2.1.8.RELEASE' } repo
我想这是一个非常典型的场景:我们的解决方案公开了一个由 asp 核心 C# Controller 构建的 API,我们从中生成一个 swagger.json(使用 https://github.com
我有 ASP.NET Core Web 应用程序,我在其中使用 swagger 使用以下内容: public void ConfigureServices(IServiceCollection ser
我有一个针对 .NET Core 2.1 框架的 ASP.NET Core MVC 应用程序。此应用程序提供 RESTful API 并返回 JSON 数据。 在 SwaggerHub 中使用基于 W
我是一名优秀的程序员,十分优秀!