【问题标题】:Unexpected end of Stream Exception on redirection重定向时流异常的意外结束
【发布时间】:2018-03-11 06:08:26
【问题描述】:

我正在测试一个 ASP.NET MVC 应用程序。有一个控制器,其方法如下:

[HttpPost]
public async Task<ActionResult> Login(LoginForm loginForm)
{
    // Do some work

    return RedirectToAction(nameof(Admins));
}

Admins 方法的签名如下:

public async Task<ActionResult> Admins(ExtendedPagingForm form)

我尝试像这样调用它:

var url = $"{TestConfig.Instance.ServerUrl}/{actionMethod}";
var sendForm = GetFormContent(new MultipartFormDataContent(), sendData); //login and password

HttpResponseMessage response = await httpClient.PostAsync(url, sendForm);

响应包含内部服务器错误信息:

IOException: Unexpected end of Stream,内容可能已经 已被另一个组件读取。

On MSDN 据说 RedirectToAction 会返回一个 HTTP 302 响应给浏览器,这会导致浏览器对指定的动作进行 GET 请求。所以它不能在浏览器中工作,也不能在 Postman 中工作,但它在那里工作正常。我可以强制我的 httpClient 发送带有数据或一些模拟请求正文的 POST 请求吗?

【问题讨论】:

    标签: c# asp.net asp.net-mvc exception


    【解决方案1】:

    我已经解决了这个问题。 我将 MultipartFormDataContent 更改为 FormUrlEncodedContent 并且它有效

    【讨论】:

      【解决方案2】:

      就我而言,我已经在使用FormUrlEncodedContent,但它仍在发生。我的是一个 Xamarin 项目。

      重新启动 Visual Studio 和 Emulator 对我有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-13
        • 2018-09-01
        • 1970-01-01
        • 2014-12-23
        • 2015-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多