gpt4 book ai didi

c# - PostAsJsonAsync 找不到请求的 URI

转载 作者:行者123 更新时间:2023-12-01 20:05:21 24 4
gpt4 key购买 nike

我目前正在学习如何使用 OWIN 和 Katana 创建 C# 服务器。

我正在尝试回复 POST,但不幸的是它没有找到该功能。

这就是我所拥有的:

这是一个用户端类,它通过 POST 发送用户数据(用户名和密码)( PostAsJsonAsync())。

public class UserRegisterClient
{
string _accessToken;
Uri _baseRequestUri; // http://localhost:8080
public UserRegisterClient(Uri baseUri, string accessToken)
{
_accessToken = accessToken;
_baseRequestUri = new Uri(baseUri, "api/register/");
}

// Handy helper method to set the access token for each request:
void SetClientAuthentication(HttpClient client)
{
client.DefaultRequestHeaders.Authorization
= new AuthenticationHeaderValue("Bearer", _accessToken);
}

public async Task<HttpStatusCode> AddUserAsync(string username, string password)
{
HttpResponseMessage response;
using (var client = new HttpClient())
{
SetClientAuthentication(client);
response = await client.PostAsJsonAsync(
_baseRequestUri.ToString(), new KeyValuePair<string, string>(username, password));
}
return response.StatusCode;
}
}

其他信息:
在 AddUserAsync 函数中 client.PostAsJsonAsync() 返回以下内容:

response =  
{
StatusCode: 404,
ReasonPhrase: 'Not Found',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers:
{
Date: Sat, 11 Jul 2015
18:16:53 GMT Server: Microsoft-HTTPAPI/2.0 Content-Length: 190
Content-Type: application/json; charset=utf-8
}
} System.Net.Http.HttpResponseMessage


服务器端,我有一个 Controller ,如下所示:

[RoutePrefix("api/register/")]
class RegisterController : ApiController
{
public async Task<IHttpActionResult> Post(KeyValuePair<string, string> userData)
{
// I never get inside here
}
}

服务器端,在Startup类中,您可以看到路由设置:

private HttpConfiguration ConfigureWebApi()
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });
return config;
}

编辑:在我的 Controller 类之前将 Route 更改为 RoutePrefix。

最佳答案

将 Controller 类公开。

[Route("api/register/")]
public class RegisterController : ApiController

不公开意味着 Web API 系统无法发现 Controller 及其操作。

关于c# - PostAsJsonAsync 找不到请求的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com