如何将查询字符串和json数据添加到httpWebRequest类型POST

时间:2016-05-31 08:11:57

标签: c# json httpwebrequest request.querystring

Javacode:

function sendTextMessage(sender, text) {
  messageData = {
    text:text
  }
  request({
    url: 'https://graph.facebook.com/v2.6/me/messages',
    qs: {access_token:token},
    method: 'POST',
    json: {
      recipient: {id:sender},
      message: messageData,
    }
  }, function(error, response, body) {
    if (error) {
      console.log('Error sending message: ', error);
    } else if (response.body.error) {
      console.log('Error: ', response.body.error);
    }
  });
}

和C#代码,我想用代码替换"?access_token=dshfhsfhrthytrghfgbfhnytfht",因为网址使用类型POST。我发现我可以使用WebRequest,但我不知道如何使用WebRequest添加Json数据,因此我使用HttpWebrequest,Http Webrequest可以通过{{1}添加查询字符串,但我如何写帖子数据和json?在此代码中,我只写StringBuilder

json data

1 个答案:

答案 0 :(得分:1)

/ *像这样写 您必须将变量添加为postdata     * /     var request =(HttpWebRequest)WebRequest.Create(“http://www.example.com/recepticle.aspx”);

var postData = "thing1=hello";
    postData += "&thing2=world";
var data = Encoding.ASCII.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();