Sohu OAuth 发帖的问题,一直得到401未授权

小小的坤 2011-07-06 11:07:07
Sohu OAuth 发帖的问题,一直得到401未授权,到目前Access_token、Token secret都获取到了,将其放入官方java版本的发送都没问题,C#方面怎么写都出错。求救。。。。。急啊~~~

以下是发送方法的代码:
public void sendMiniBlog(string content)
{
Uri uri = miniblogUri;
string nonce = oAuth.GenerateNonce();
string timeStamp = oAuth.GenerateTimeStamp();
string normalizeUrl, normalizedRequestParameters;

// 签名
string sig = oAuth.GenerateSignature(
uri,
apiKey,
apiKeySecret,
accessToken,
accessTokenSecret,
"POST",
timeStamp,
nonce,
OAuthBase.SignatureTypes.HMACSHA1,
out normalizeUrl,
out normalizedRequestParameters);
sig = HttpUtility.UrlEncode(sig);

//构造请求
StringBuilder requestBody = new StringBuilder();
requestBody.AppendFormat("status={0}", HttpUtility.UrlEncode(content).Replace("\\+","%20"));
Encoding encoding = Encoding.GetEncoding("utf-8");
byte[] data = encoding.GetBytes(requestBody.ToString());

//构造OAuth头部
StringBuilder oauthHeader = new StringBuilder();
oauthHeader.AppendFormat("OAuth realm=\"\", oauth_consumer_key={0}, ", apiKey);
oauthHeader.AppendFormat("oauth_nonce={0}, ", nonce);
oauthHeader.AppendFormat("oauth_timestamp={0}, ", timeStamp);
oauthHeader.AppendFormat("oauth_signature_method={0}, ", "HMAC-SHA1");
oauthHeader.AppendFormat("oauth_version={0}, ", "1.0");
oauthHeader.AppendFormat("oauth_signature={0}, ", sig);
oauthHeader.AppendFormat("oauth_token={0}", accessToken);

// Http Request的设置
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Headers.Set("Authorization", oauthHeader.ToString());
request.Method = "POST";
request.ContentLength = data.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
string responseBody = stream.ReadToEnd();
stream.Close();
response.Close();
}
catch (WebException e)
{
StreamReader stream = new StreamReader(e.Response.GetResponseStream(), System.Text.Encoding.UTF8);
string responseBody = stream.ReadToEnd();
stream.Close();
string error = "发送广播失败,原因: " + responseBody;
Console.WriteLine(error);
}
}
...全文
291 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小的坤 2011-08-16
  • 打赏
  • 举报
回复
可以的[Quote=引用 9 楼 yibuyiqu001 的回复:]
引用 6 楼 zhangjiankun880 的回复:

问题找到了,吐血的是问题竟然出在:
http://api.t.sohu.com/statuses/update.json与
http://api.t.sohu.com/statuses/upload.json
前者是正确的,后者可能是以前搜狐测试的,很佩服自己哪里找来的这地址。同时也感谢各位了~


sohu开放平台上说,前……
[/Quote]
yibuyiqu001 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangjiankun880 的回复:]

问题找到了,吐血的是问题竟然出在:
http://api.t.sohu.com/statuses/update.json与
http://api.t.sohu.com/statuses/upload.json
前者是正确的,后者可能是以前搜狐测试的,很佩服自己哪里找来的这地址。同时也感谢各位了~
[/Quote]

sohu开放平台上说,前者是发布不带图的,后者是带图的,我现在用后者也不成功,lz能用前者发图吗
小小的坤 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 isjoe 的回复:]
引用 6 楼 zhangjiankun880 的回复:
问题找到了,吐血的是问题竟然出在:
http://api.t.sohu.com/statuses/update.json与
http://api.t.sohu.com/statuses/upload.json
前者是正确的,后者可能是以前搜狐测试的,很佩服自己哪里找来的这地址。同时也感谢各位了~


sohu也干这事。。。。。。……
[/Quote]
恩,相当郁闷~~~
isjoe 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangjiankun880 的回复:]
问题找到了,吐血的是问题竟然出在:
http://api.t.sohu.com/statuses/update.json与
http://api.t.sohu.com/statuses/upload.json
前者是正确的,后者可能是以前搜狐测试的,很佩服自己哪里找来的这地址。同时也感谢各位了~
[/Quote]

sohu也干这事。。。。。。。
小小的坤 2011-07-06
  • 打赏
  • 举报
回复
问题找到了,吐血的是问题竟然出在:
http://api.t.sohu.com/statuses/update.json与
http://api.t.sohu.com/statuses/upload.json
前者是正确的,后者可能是以前搜狐测试的,很佩服自己哪里找来的这地址。同时也感谢各位了~
小小的坤 2011-07-06
  • 打赏
  • 举报
回复
是有教程,但是他是java的,然后把主要的一些豆封装到jar包中了,没办法借鉴~
isjoe 2011-07-06
  • 打赏
  • 举报
回复
OAuth都有示例和教程,Sohu 也有的,打客服。。。。。。
小小的坤 2011-07-06
  • 打赏
  • 举报
回复
额,那请教了,我之前写其他的用这个发都可以,不过基本上没改就是了~有没有写好的,借鉴下,谢谢了~
xuexiaodong2009 2011-07-06
  • 打赏
  • 举报
回复
C#借口不是这样吧

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧