已经被困在这个问题上好几天了。尝试从具有 oauth2 身份验证的 API 获取访问令牌。
但我不断收到“401 未经授权”、“需要完全身份验证”
我的猜测是我做错了什么
.SetRequestHeder "Authorization", "basic " + (base64 encoded)
Run Code Online (Sandbox Code Playgroud)
这是到目前为止的代码:(与另一个 API 一起使用)
Username = "myusername"
Password = "myclientsecret"
PasswordnUsername = Password & ":" & Username
argumentString = "?grant_type=password&username=myusername&password=mypassword"
Set xmlhttp = CreateObject("MSXML2.XMLHTTP.6.0")
xmlhttp.Open "POST", "https://api.url/partner/oauth/token", False
xmlhttp.SetRequestHeader "Authorization", "basic " + mdl_API_MB_ACCESS_TOKEN.Base64Encode(PasswordnUsername)
xmlhttp.SetRequestHeader "x-api-key", "myxapicode"
xmlhttp.Send (argumentString)
Run Code Online (Sandbox Code Playgroud) 我现在挣扎了好几天,我正在尝试使用 url 后缀实现我的 API 版本。fe http://localhost/api/v1/sites & http://localhost/api/v2/sites。
我猜我很接近,但突然间我把这一切搞砸了..
非常感谢你帮助我。
现在我收到:“System.invalidOperationException:'映射到约束键'apiVersion'的约束类型'ApiVersionRouteConstraint'必须实现IhttpRouteConstraint接口。' 在 Global.asax.cs
Global.asax.cs
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace HIDDEN
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}
Run Code Online (Sandbox Code Playgroud)
WebApiConfig.cs
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.Owin.Security.OAuth;
using System.Web.Http;
using System.Web.Http.Routing;
namespace HIDDEN
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only …Run Code Online (Sandbox Code Playgroud)