我正在我的 Web api 控制器上的 Visual Studio 中进行一些自动化集成测试。我的测试中有以下代码:
var url = serverAddress + "/api/PostalCodes?postalCode=" + postalCodeToFind;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("accept", "application/json");
HttpResponseMessage response = client.GetAsync(url).Result;
response.EnsureSuccessStatusCode();
我收到以下错误:
System.Net.Http.HttpRequestException:响应状态码不表示成功:404(未找到)。
使用的 selfhost 服务器:
private const string serverAddress = "http://localhost:8080";
[TestInitialize]
public void Initialize()
{
config = new HttpSelfHostConfiguration(serverAddress);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.MaxReceivedMessageSize = 2024 * 2024;
config.MaxBufferSize = 2024 * 2024;
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
}
奇怪的是,如果我在 IIS 中有我的 web api 控制器,相同的 URL 将正常工作并返回一个值。我也有相同的 url 做一个帖子(没有 postalCodeToFind 查询参数),它也很好用......
有什么线索吗?