当使用WebRequest发送POST请求时,即使我已经手动设置了Authorization头并将PreAuthenticate设置为true,该头也不会被随请求一起发送。
webRequest.Headers["Authorization"] = "OAuth oauth_consumer_key=bFPD...";
webRequest.PreAuthenticate = true;
使用 Fiddler 我可以看到 Authorization 标头没有被发送。目标站点(Twitter)返回 400(错误请求),而不是 401(未授权),这是 WebRequest 发送 Authorization 数据所需要的正确挑战。为了提供信息,返回的内容如下:
使用 Fiddler 我能看到 Authorization 标头未被发送。目标站点(Twitter)返回的状态码是 400(错误请求),而不是应该的 401(未授权),因此无法成功发送 Authorization 数据。值得注意的是,返回的内容如下:
{"errors":[{"message":"Bad Authentication data","code":215}]}
那么,我该怎么解决这个问题呢?如何强制 WebRequest 在初始请求中发送授权信息?请注意,授权数据不是基本认证,而是 OAuth 字符串。
谢谢