繁体   English   中英

将其转换为C#中的HTTP POST

[英]Translating this to a HTTP POST in C#

我目前正在尝试HTTP请求。 我已经成功地完成了get请求的工作,并且已经阅读了使用HTTP请求进行后请求的内容。 现在我试图与雅虎API工作,以使用雅虎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参数?

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

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

当然是网址。

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

您需要更改内容类型行

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

手动组装JSON(“ {foo:'bar'}”等)或使用json.net

并设置内容长度

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

您在问一个开放式问题,如果您想要一个特定而完整的答案,那将需要人们为您编写一堆代码。 正如其他人指出的那样,您需要解决几个问题:

  • JSON有效负载,这很简单,可以通过代码示例中使用的byteArray将JSON字符串放入请求正文中。
  • 内容类型,您需要按照jrummell的说明进行更改。
  • OAuth凭证,这是您需要阅读,了解和获取的库的​​宝藏。 这是开始寻找图书馆的好地方

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM