重定向时出现意外的Stream Exception结束

时间:2017-09-29 10:38:50

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

我正在测试一个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:意外结束Stream,内容可能已经存在   已被其他组件阅读。

On MSDN据说RedirectToAction向浏览器返回HTTP 302响应,这会导致浏览器向指定的操作发出GET请求。因此它既不能在浏览器中工作,也不能在Postman中工作,但它在那里工作正常。我可以强制我的httpClient发送带有数据或模拟请求体的POST请求吗?

2 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 我将MultipartFormDataContent更改为FormUrlEncodedContent并且可以正常工作

答案 1 :(得分:0)

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

  

重新启动Visual Studio和模拟器​​对我有帮助。