異なる形式のファイルを変換するthis APIを使用しようとしています。要求の一部として、ファイルをバイナリ形式で取得します。私はそれがC#になるとどういうことかを正確に把握しようとしています。私が読んだことはすべて、バイト配列を使用することを指しているが、これまでは機能していない。ファイルをバイナリ形式に変換してPOST要求ペイロード内でファイルを送信する方法
基本的には、ドキュメントをバイナリに変換してから、その生データを使用して、実際のPOSTリクエストを送信するシステムの別の部分にプラグインする必要があります。
APIをよりよく理解するために、エンドポイントをテストしてリクエストペイロードを表示しました。フィドラーはありませんが、それは(それがASCIIとしてバイトを解釈しようとし、おそらくので)ちんぷんかんぷんだ
:
Chromeはファイルフィールドの一部として送信されます生データを表示しません。
私はちょっと混乱しています。要求ペイロードのフォームデータオブジェクトの目的のために、私がC#で持っているファイルに何をする必要がありますか?
80753420060800033022316421010890100325001908291671111101161011101169584121112101115934612010910832162424016002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:
DocumentInfo di = this.BoundEntryInfo as DocumentInfo; string contentType = "application/msword"; string binaryValue; using (DocstarReadStream filestream = di.ReadDoc(out contentType)) //open a stream to the word document in the other system { using (MemoryStream mstream = new MemoryStream()) { filestream.CopyTo(mstream); binaryValue = string.Join("", mstream.ToArray()); } }
結果
binaryValue
文字列は、このような値を持っている:私は(私はそのシステムのAPIを使用して、別のシステムからファイルにアクセスしています)、これを試してみましたしかし0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018014820311019448166924714925015145183859823216217042213962150458223372412328625314619918825419019 ...
、私は、データが何らかの形で間違ってフォーマットされていると仮定していますので、不正な要求エラーでPOSTリクエストのペイロード結果のファイルフィールドの値としてこれを使用して(それが「変換エラー」と言います)。
ええ、私はWebClientを使って動作させましたが、それはより賢明なアプローチで終了しました。 –