0

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

消息管理 API 可用于向另一个 Yahoo! 发送消息。信使联系。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"  
}  

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

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 参数是什么?

4

4 回答 4

1

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

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

当然,还有网址。

于 2013-03-05T21:00:12.227 回答
0

您需要更改其中包含 url 的行上的 url

您需要更改内容类型行

您需要将有效负载转换为 json 字符串,然后将其转换为字节数组(示例中为 byteArray)

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

并设置内容长度

于 2013-03-05T20:59:50.007 回答
0

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

于 2013-03-05T21:04:11.853 回答
0

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

  • JSON 有效负载,这很简单,通过代码示例中使用的 byteArray 将 JSON 字符串放入请求正文中。
  • 内容类型,您需要按照 jrummell 的说明进行更改。
  • OAuth 凭据,这是您需要阅读、理解和获取库的一大堆鱼。这是开始寻找图书馆的好地方。
于 2013-03-05T21:04:42.323 回答