如何在rest wcf服务中上传pdf文件和其他字符串参数

Posted

技术标签:

【中文标题】如何在rest wcf服务中上传pdf文件和其他字符串参数【英文标题】:how to upload a pdf file and other string parameter in rest wcf service 【发布时间】:2015-07-27 07:11:15 【问题描述】:

我已经创建了一个 rest wcf 服务,现在我想将 pdf 文件和其他一些字符串数据发布到它,那么正确的方法是什么

1) 将 pdf 转换为 base64 字符串,然后形成 xml 并将其发布到 REST Web 服务中,然后在 REST 服务中对其进行解码。

2) 使用以下代码直接上传

     byte[] pdfFile = File.ReadAllBytes("pdf file path here");WebRequest request = WebRequest.Create("https://test.site.fr/Testfile");
    request.Method = "POST";
    request.ContentLength = pdfFile.Length;
    request.ContentType = "application/pdf";

    Stream stream = request.GetRequestStream();
    stream.Write(pdfFile, 0, pdfFile.Length);
    stream.Close();

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader reader = new StreamReader(response.GetResponseStream());
    Console.WriteLine(reader.ReadToEnd());
    reader.Close();

这对于大文件和需要任何其他压缩时更好

【问题讨论】:

【参考方案1】:

最好的方法是使用 multipart/form-data。 C# 没有内置的 multipart/form-data 解析器,因此请使用由 C# 社区的一位开发人员编写的解析器。

HttP Multipart Data Parser

【讨论】:

以上是关于如何在rest wcf服务中上传pdf文件和其他字符串参数的主要内容,如果未能解决你的问题,请参考以下文章

wcf rest 服务用于安卓和ISO调用2-------文件上传

上传文件wcf [重复]

Android将文件作为ByteArray上传到WCF REST服务

将带有额外参数的文件发送到 WCF REST 服务

WCF REST用jquery下载pdf

Restful风格wcf调用3——Stream