【发布时间】:2013-02-22 01:29:12
【问题描述】:
我正在向在线交易 REST API 发出 OAuth 1.0a 请求。据我所知,以下代码是发出请求的方式,但我在request.ContentLength = postData.Length; 行上收到“此属性无法在写入开始后设置”消息......我不明白为什么。如果这不是在 OAuth 身份验证的 Web 请求发出之前将 POST 数据添加到它的方法,那是什么?
var request = consumer.PrepareAuthorizedRequest(new DotNetOpenAuth.Messaging.MessageReceivingEndpoint(new Uri(this.EndPointAddress, relativeUri), method), this.AccessToken);
request.Method = (method == DotNetOpenAuth.Messaging.HttpDeliveryMethods.PostRequest) ? "POST" : "GET";
if (postValues != null && postValues.Count > 0)
{
//There is POST data associated with this request, include it
var postData = KVPCollectionToString(postValues);
request.ServicePoint.Expect100Continue = false;
request.ContentLength = postData.Length;
Logger.Trace(t => t("POST Data: {0}", postData));
using (var stream = request.GetRequestStream())
{
var pBytes = System.Text.Encoding.UTF8.GetBytes(postData);
stream.Write(pBytes, 0, pBytes.Length);
}
}
【问题讨论】:
标签: c# post oauth httpwebrequest dotnetopenauth