Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF是否向服务发送字节[]?_C#_Web Services_Wcf_Http Post - Fatal编程技术网

C# WCF是否向服务发送字节[]?

C# WCF是否向服务发送字节[]?,c#,web-services,wcf,http-post,C#,Web Services,Wcf,Http Post,我正在尝试将byte[]或FromBase64String发布到我的Web服务。我一直收到404错误。我已将[“内容类型”]更改为“文本/纯文本”,但仍然收到错误。然而,当我评论完byteArray时,一切都很好。有人有什么建议吗 客户: Object _object = new Object { Param1String = "data", Param2String= "data",

我正在尝试将byte[]或FromBase64String发布到我的Web服务。我一直收到404错误。我已将[“内容类型”]更改为“文本/纯文本”,但仍然收到错误。然而,当我评论完byteArray时,一切都很好。有人有什么建议吗

客户:

      Object _object = new Object
        {
            Param1String = "data",
            Param2String= "data",           
            Param3String = "data",
            ByteArray = ReadAllBytes(@"C:\Folder\test.pdf")
        };

        try
        {
            WebClient Proxy = new WebClient();                
            Proxy.Headers["Content-type"] = "application/json";                
            MemoryStream stream = new MemoryStream();
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Object));
            serializer.WriteObject(stream, _object);
            byte[] data = Proxy.UploadData("http://localhost:4589/TestService.svc/FileUpload", "POST", stream.ToArray());

            stream = new MemoryStream(data);
            serializer = new DataContractJsonSerializer(typeof(Object));
            var result = serializer.ReadObject(stream) as Object;
            Console.WriteLine(result.Param1String);
            Console.ReadKey(true);
        }
        catch (Exception ex)
        {

        }
服务:

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "/FileUpload")]
    void FileUpload(Patron patron);

    public void FileUpload(Object patron)
    {

            byte[] newBytes = null;
            BinaryWriter Writer = null;
            string Name = @"C:\\Temp\\" + object.Param1String + "";
            //byte[] bData = Helper.CopyToArray(object.ByteArray);

            try
            {
                newBytes = Convert.FromBase64String(patron.ByteArray);
                Writer = new BinaryWriter(File.OpenWrite(Name));                    
                Writer.Write(newBytes);
                Writer.Flush();
                Writer.Close();
            }
            catch
            {                    
                //return false;
            }
        }

在序列化对象之前,需要对filecontent进行base64编码。并在另一侧将其转换回字节[]

Object _object = new Object
    {
        Param1String = "data",
        Param2String= "data",           
        Param3String = "data",
        Base64ByteArray =  Convert.ToBase64String(ReadAllBytes(@"C:\Folder\test.pdf"))
    };