gpt4 book ai didi

c# - 从本地 MVC 站点调用本地 WebAPI

转载 作者:太空宇宙 更新时间:2023-11-03 21:29:21 24 4
gpt4 key购买 nike

我已经使用 Windows 身份验证 在我的本地计算机上创建了一个 WebAPI 应用程序。

我还创建了一个 MVC 5 应用程序,我正在尝试使用以下代码连接到我的 WebAPI:

using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:52613/api/acmeco/");
var result = client.GetAsync("assignees/get").Result;
string resultContent = result.Content.ReadAsStringAsync().Result;

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
assignees = json_serializer.DeserializeObject(resultContent);
}

问题是:每次我尝试通过 MVC 5 应用程序或通过 Fiddler 进行连接时,我都会收到 401 Unauthorized 错误。

我已经尝试了多种解决方案来解决这个问题,包括但不限于以下几种:

http://support.microsoft.com/kb/896861/en-us

有谁知道如何从本地 MVC 5 应用调用本地 WebAPI?

编辑:我也试过像这样将 CORS(跨源脚本)添加到 WebAPI,但似乎对 401 错误没有影响:

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class AssigneesController : ApiController
{
public Assignees AssigneeRepo = new Assignees();

// GET api/values
public IEnumerable<Assignee> Get(string @namespace)
{
return AssigneeRepo.GetAssigneesForTenant(@namespace);
}
}

但是,我可以直接从浏览器访问 localhost:52613/api/acmeco/assignees/get。

最佳答案

你可以试试:

        HttpClientHandler handler = new HttpClientHandler()
{
UseDefaultCredentials = true
};

using(HttpClient client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://localhost:52613/api/acmeco/");
var result = client.GetAsync("assignees/get").Result;
string resultContent = result.Content.ReadAsStringAsync().Result;

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
assignees = json_serializer.DeserializeObject(resultContent);
}

关于c# - 从本地 MVC 站点调用本地 WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062098/

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