响应状态代码不表示成功:401 Tumblr

时间:2016-01-17 14:08:20

标签: c# api oauth httpclient tumblr

我想对Tumblr实施授权。 在接待期间access_token像这样:

TypedLobby sqlLobby = new TypedLobby(GAME_LOBBY_NAME, LobbyType.SqlLobby); 
string sqlLobbyFilter = string.Format("L = {0}" , 8); 
PhotonNetwork.JoinRandomRoom(null, 2, MatchmakingMode.FillRoom, sqlLobby, sqlLobbyFilter);

我收到以下错误:

  

类型' System.Net.Http.HttpRequestException'的例外情况发生在mscorlib.ni.dll但未在用户代码中处理

     

附加信息:响应状态代码未指示   成功:401(未经授权)。

我设置了回调网址。可能是什么问题?

2 个答案:

答案 0 :(得分:1)

问题是您正在发送GET请求。根据{{​​3}},您必须使用带标题ContentType: application/x-www-form-urlencoded的POST。有关使用HttpClient执行此操作的一个很好的示例,请参阅spec。请注意,您的名称/值对不是URL的一部分,即使它们被编码为查询字符串。

或者,如果您不介意库依赖项,可以尝试我的here库,这会将代码缩短为:

string responseBodyAsText = await "https://www.tumblr.com/oauth/access_token"
    .PostUrlEncodedAsync(new { 
        oauth_consumer_key = oauth_consumer_key,
        oauth_token = main_oauth_token,
        oauth_signature_method = "HMAC-SHA1",
        oauth_signature = oauth_signature,
        oauth_timestamp = oauth_timestamp,
        oauth_nonce = oauth_nonce,
        oauth_version = "1.0",
        oauth_verifier = oauth_verifier
    })
    .ReceiveString();

Flurl可在Flurl上找到。

答案 1 :(得分:0)

EnsureSuccessStatusCode() 也会产生同样的错误。检查您是否正在使用它,如果是,请确保您的服务器身份验证正确无误。