我目前正在使用与基本 http 身份验证一起使用的 Spreedly REST API。
起初,我这样设置我的凭据:
webRequest.Credentials = new System.Net.NetworkCredential(user, password);
它适用于许多 API 资源,包括 POST 新网关、GET 网关、PUT 网关数据,甚至编辑网关。
/v1/payment_methods.<format>
当我试图在他们的资源上发布一个新的 payment_method 时,我碰壁了。
我得到的错误:
HTTP 422
{
"errors": [
{
"key": "errors.environment_key_parameter_required",
"message": "You must specify an environment_key parameter."
}
]
}
在验证了很多东西之后,我根据他们的示例使用 curl 进行了尝试,并且成功了。
问题似乎在于我在 HttpWebRequest 中设置凭据的方式,即使它与我用于其他工作资源的代码相同。
我尝试使用 CredentialCache,因为我可以指定“基本”,但它以同样的方式失败:
CredentialCache cache = new CredentialCache();
cache.Add(webRequest.RequestUri, "Basic", new System.Net.NetworkCredential(user, password));
webRequest.Credentials = cache;