我正在尝试使用这个 API,它可以在不同格式之间转换文件。作为请求的一部分,它需要二进制格式的文件。我试图弄清楚这对 C# 意味着什么。我读过的所有内容都指向使用字节数组,但到目前为止还没有奏效。
本质上,我需要将文档转换为二进制文件,然后使用该原始数据并将其插入负责发送实际 POST 请求的系统的另一部分。
为了更好地理解 API,我测试了端点并查看了请求负载。Chrome 不显示作为文件字段的一部分发送的原始数据:
Fiddler 确实如此,但它是胡言乱语(可能是因为它试图将字节解释为 ASCII):
所以我有点困惑。对于请求有效负载中的表单数据对象,我需要对 C# 中的文件执行什么操作?我试过这个(我正在使用该系统的 API 从另一个系统访问文件):
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
字符串的值如下:
...
但是,将其用作 POST 请求有效负载中 File 字段的值会导致错误请求错误(它显示“转换错误”,因此我假设数据格式错误)。