2016-05-31 13 views
0

Javacode型のHttpWebRequestにクエリ文字列とJSONデータを追加する方法:ここでPOST

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#のコードを、私は、URLの使用タイプPOSTので、コードによって"?access_token=dshfhsfhrthytrghfgbfhnytfht"を交換したいです。私はWebRequestを使用することができますが、私はWebRequestをどのように使用してJsonデータを追加するのかわからないので、HttpWebrequest、Http Webrequestを使用してStringBuilderでクエリ文字列を追加できます。このコードでは、私はちょうどjson data

public void sendTextMessage(string sender, string text) { 
      string json = "{ recipient: {id:"+sender+ "} , message: {text: \""+text+"\"}"; 
      var request = (HttpWebRequest)WebRequest.Create("https://graph.facebook.com/v2.6/me/messages?access_token=dshfhsfhrthytrghfgbfhnytfht"); 
      request.ContentType = "application/json"; 
      request.Method = "POST"; 

      using (var streamWriter = new StreamWriter(request.GetRequestStream())) 
      {     
       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
      } 
      var httpResponse = (HttpWebResponse)request.GetResponse(); 
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
      } 
     } 

答えて

1

/*あなたが*/ VAR要求=(HttpWebRequestの)WebRequest.Create( "http://www.example.com/recepticle.aspx")POSTDATA として変数あなたを追加する必要があり、この のように書きます。

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(); 
+0

このコードの後ろにjsonデータを追加できますか?このように と私はjsondataを後ろに追加しながらrequest.ContentLengthです。 'stream.Write(data、0、data.Length); stream.Write(json); ' –

+0

はい、jsonアプリケーションとしてコンテンツタイプを追加できます –

+0

そしてrequest.ContentLengthはどうですか? –

関連する問題