首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个HttpRequestMessage的请求URI无效?

为什么这个HttpRequestMessage的请求URI无效?
EN

Stack Overflow用户
提问于 2021-12-23 20:27:06
回答 1查看 337关注 0票数 2

我正在尝试编写一个集成测试,测试我的应用程序的注册功能。这是控制器:

代码语言:javascript
运行
复制
[Route("account")]
public class IdentityController : MainController
{
    // ...

    [HttpGet("signup")]
    public IActionResult SignUp()
    {
        return View();
    }

    [HttpPost("signup")]
    public async Task<IActionResult> SignUp(UserSignUpViewModel signUp)
    {
        if (!ModelState.IsValid)
        {

我正在跟踪一次在线培训,根据视频以及周围的其他例子,应该这样做才能测试提交的表单:

代码语言:javascript
运行
复制
[Fact]
public async Task Identity_CreateUser_ShouldBeSuccessful()
{
    // Arrange
    var initialResponse = await _fixture.Client.GetAsync("/account/signup");
    initialResponse.EnsureSuccessStatusCode();

    var antiForgeryToken = _fixture.GetAntiForgeryToken(await initialResponse.Content.ReadAsStringAsync());

    var postRequest = new HttpRequestMessage(HttpMethod.Post, "/account/signup")
    {
        Content = new FormUrlEncodedContent(new Dictionary<string, string>
        {
            { "Name", "John Malone Doe" },
            // ...
        }
    }

    // Act
    var response = await _fixture.Client.SendAsync(postRequest);

    // ...

骑手甚至会为我自动完成这条路,但是它会失败,因为它会发出这样的信息:

System.InvalidOperationException:提供了无效的请求URI。请求URI必须是绝对URI,或者必须设置BaseAddress。

我尝试传递完整地址"https://localhost:5001/account/signup",并以这种方式编写代码:

代码语言:javascript
运行
复制
var postRequest = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("https://localhost:5001/account/signup"),
    Content = new FormUrlEncodedContent(new Dictionary<string, string>
    {

没有解决问题。

EN

回答 1

Stack Overflow用户

发布于 2021-12-24 02:16:28

看来URI需要一个尾斜杠才能有效。

请参阅:Create new URI from Base URI and Relative Path - slash makes a difference?

与其使用https://localhost:5001/account/signup,不如尝试https://localhost:5001/account/signup/

(在第二个结尾处有一个斜杠)

不过,我还没测试过这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70467086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档