【问题标题】:Translating this to a HTTP POST in C#将其转换为 C# 中的 HTTP POST
【发布时间】:2013-03-05 20:55:52
【问题描述】:

我目前正在试验 HTTP 请求。我已经成功地完成了get 请求,并且我已经阅读了使用 HTTP 请求进行发布请求的内容。 现在我正在尝试使用 yahoo API,为了使用 Yahoo api,它声明 at

消息管理 API 可用于向另一个人发送消息 雅虎!信使联系。 API使用非常简单,如图 这里。请注意,接收消息的联系人是 URI,使用如下格式:<server>/v1/message/<network>/<contactID>

POST /v1/message/yahoo/targetYahooId?sid=msgrsessionid  
Host: rcore1.messenger.yahooapis.com  
Authorization: < Standard OAuth credentials >  
Content-Type: application/json;charset=utf-8  
Content-Length: 25  
{  
    "message" : "Hey there"  
}  

现在我有一个 OAuth 字符串,它是使用 HttpWebRequest 对象从 get 中获得的。 字符串是这样的

oauth_token=A%3Dvh....aRg--&oauth_token_secret=bd46a....c9239&oauth_expires_in=3600&oauth_session_handle=ALtT.....3J1N4Zg--&oauth_authorization_expires_in=784964948&xoauth_yahoo_guid=TUSKED5...NCIA

更新

现在我的问题如下:

1- 如果我在 C# 中使用 WebRequest 对象,我的 URI 会是什么样子

2- 我知道它需要一个 JSON 类型的对象。我怎么知道 OAuth 参数是什么?

【问题讨论】:

  • 您在哪一部分遇到了问题?

标签: c# oauth http-post yahoo-api


【解决方案1】:

您需要更改的一件事是内容类型:

request.ContentType = "application/json;charset=utf-8";

当然还有网址。

【讨论】:

    【解决方案2】:

    你需要更改url所在行的url

    您需要更改内容类型行

    你需要把payload变成一个json字符串,然后把它转换成一个字节数组(示例中的byteArray)

    要么手工组装 json "{ foo:'bar'}" 等,要么使用 json.net

    并设置内容长度

    【讨论】:

    • 你必须使用 OAuth 来验证你的用户,这个链接应该可以帮助deanhume.com/Home/BlogPost/…
    • 我已经进行了身份验证并拥有访问令牌
    【解决方案3】:

    看起来它需要一个 JSON 对象作为请求正文。根据您使用的 .NET 版本,您可以使用此处所示的 Javascript 序列化程序 (https://stackoverflow.com/a/7003815/939080) 或 JSON.NET (http://james.newtonking.com/projects/json-net.aspx) 将表单集合转换为 JSON 输出。

    【讨论】:

    • 谢谢我去看看 JSON.NET
    【解决方案4】:

    您问的是一个开放式问题,如果您想要一个具体而完整的答案,就需要人们为您编写一堆代码。正如其他人所指出的,您需要处理几个问题:

    • JSON 负载,通过代码示例中使用的 byteArray 将 JSON 字符串放入请求正文中很简单。
    • 内容类型,您需要按照 jrummell 的说明进行更改。
    • OAuth 凭据,这是您需要阅读、理解和获取库的一大堆鱼。这是一个good place,开始寻找图书馆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-27
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多