询问者
asp.net mvc web 项目 与asp.net mvc api项目,两个独立的项目。如何从web项目后台访问api

问题
全部回复
-
你好,
据我所知,在windows和web中通过httpclient方法来访问api是一样的。
首先api会验证你的用户,然后通过验证会给你一个accesstoken,然后可以访问API.
有可能你传递令牌的过程中丢失了令牌,也有可能你验证代码有问题。
因为我们并不清楚你的API代码是如何写的,所以并不能给你一个确切的解决方法。
我建议你可以安装一个fiddler来看下你的请求的结果,来确定到底是什么错误。
另外,你可以参照如下链接
如何使用 Web API 来对 MVC 应用程序进行身份验证:
http://www.oschina.net/translate/how-can-you-use-web-api-to-authenticate-users-of-y?print
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
你好,
其实这种情况的原因可能是验证问题,或者网络问题等等,它的返回状态码有没有?
资料的话,我建议你可以参照如下链接:http://zrj-software.iteye.com/blog/2163487
另外,我建议你可以新开一个帖子,因为这个帖子里面的问题已经解决了。
你下一个问题其实和上一个问题并不是十分相关,我们不建议在一个帖子中解决多个问题。
因为这个并不方便,其他人搜索解决答案。
谢谢
MSDN Community Support
Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com. -
多谢。后面的问题也解决了。不是认证的原因。综合考虑的结果是 await异步方法同步调用的问题。
一开始使用单例模式,如下操作
abc.instace.get(api)
在instace时进行了一次登录认证,然后get方法访问api
这是两个操作,所以第一个登录认证的操作一直没有返回。
后来修改为在get时判断是否登录,若未登录则重新登录。这样就把两个异步操作放到同一个同步过程里了。登录操作会立马返回。
- 已建议为答案 Brando Zhang 2016年11月11日 6:32