私は、オンラインカレンダーアプリケーションにシリアル化されたバイト配列のシリアルデータを送信するC#ツールを継承しました。オンラインカレンダーはnode.js APIを使用します。私の問題は、serializeされたバイト配列がnode.jsによって解析されないということです(IEでは、req.bodyオブジェクトが空です)。 Node.jsで解析できるようにデータを送信するか、C#バイト配列を処理できるNode.jsでパーサを探します。これはJSON形式です。リクエストを送信するコードは次のとおりです。Node.jsのC#ツールからbyte []を逆シリアル化する
string json = JsonConvert.SerializeObject(reallyPost, Formatting.None);
byte[] postThisz = Encoding.ASCII.GetBytes(json);
byte[] response = wc.UploadData(siteUrl, postThisz);
現時点では、単にデータをログに記録しようとしています。ルートはここでキャッチされています
app.post('/remotePost', api.remotePost);
このコントローラを使用する:
module.exports.remotePost = function (req, res) {
console.log(req);
console.log(req.body);
sendJsonResponse(res, 200, "remote posted.");
};
req.bodyが私の解析ミドルウェアによって移入されます:しかし、これはバイト配列を扱うことができない
app.use(bodyParser.json());
C#プログラムによって送信されます。私はこれを解決するには、C#POSTを正しく処理するパーサ(byte []型)を見つけるか、JSON.stringify()が返す形式の何かを含むポストを作ることができるC#モジュールを見つけることによって解決できます。
い私はMyWebClient以外の何かを()を使用する必要があり、この平均値。UploadData ()リクエストを送信するには?この方法のように、バイナリデータを主張しているようです。 – awimley
ああ、申し訳ありませんが、私は誤読のように見えます。私が見ることができる唯一の問題は、あなたが 'Encoding.UTF8'のようなものの代わりに' Encoding.ASCII'を使っていることです。 – cubrr