【问题标题】:Able to GET authenticate but not POST authenticate能够 GET 身份验证但不能 POST 身份验证
【发布时间】:2012-02-03 21:41:39
【问题描述】:

我正在尝试使用 C# 连接到 REST API。 我能够成功执行一些 GET 请求,但 POST 一直给我 401 身份验证错误。

我已经下载了 fiddler,这就是我的请求的样子:

获取(作品)

请求标头

GET https: //hello.myurl.com/api HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/xml
Authorization: Basic ***************************************************************************************************
Host: hello.myurl.com

-

POST(不起作用)

请求标头

POST https: //hello.myurl.com/api HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/xml
Authorization: Basic ***************************************************************************************************
Host: hello.myurl.com
Content-Length: 12

请求正文

status=hello

(* 两者使用

相同
String authinfo = "username:password";
Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));

有什么想法吗?

【问题讨论】:

  • 网络服务是你写的还是别人写的?从您所说的看起来好像某些方法对它们进行了身份验证
  • 但我正在发送身份验证详细信息。

标签: web-services authentication rest curl


【解决方案1】:

我会查阅该特定 URL 的 API 文档。 GET 请求只是请求数据的只读版本,POST 请求意味着您正在对某个 URL 进行更改,因此 API 可能允许 GET 请求无需身份验证,但需要对 POST 请求进行身份验证。

在您的情况下,我会冒险猜测您的身份验证不正确,但它只是在 GET 请求中被忽略,因为它不需要身份验证。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2012-10-14
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2018-02-24
    • 2015-04-29
    相关资源
    最近更新 更多