Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 使用.NET进行JSON和Base64编码_C#_.net_Json_C# 4.0_Base64 - Fatal编程技术网

C# 使用.NET进行JSON和Base64编码

C# 使用.NET进行JSON和Base64编码,c#,.net,json,c#-4.0,base64,C#,.net,Json,C# 4.0,Base64,我有一个相当标准的方法,base64在通过线路将字符串发送到客户端之前对该字符串进行编码。当通信是SOAP时,一切正常,但现在一切都通过.NET版本的JSON运行,base64解码出现错误: 输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非法字符 我注意到.NET在字符串的开头和结尾添加了一个\“,所以我删除了它们,然后我检查了长度,注意到它不是4的倍数,所以我根据需要用等号填充开头和结尾-没有任何帮助。无论我做什么,我仍然会得到上面提到的相

我有一个相当标准的方法,base64在通过线路将字符串发送到客户端之前对该字符串进行编码。当通信是SOAP时,一切正常,但现在一切都通过.NET版本的JSON运行,base64解码出现错误:

输入不是有效的Base-64字符串,因为它包含非Base-64字符、两个以上的填充字符或填充字符中的非法字符

我注意到.NET在字符串的开头和结尾添加了一个\“,所以我删除了它们,然后我检查了长度,注意到它不是4的倍数,所以我根据需要用等号填充开头和结尾-没有任何帮助。无论我做什么,我仍然会得到上面提到的相同错误

我被困住了,没有其他人对类似问题的回答有帮助——有什么想法(而且,没有,我无法摆脱.NET…)

来自服务器的字符串为:

zkWv1UuGZX08g1s/k/Rp4edZJ/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB/JUdmuU7FB7thtK1yah+bW0CL3NPP/WGeQHjL/PVPOAOVAIDONNxOVONWUMINPSTA6HVXHJ5MJXDVIOEHZCHFFFJNDW6TURBHYTTK4=

在我处理之前,客户端接收到的字符串是:

\“zkWv1UuGZX08g1s\/k\/Rp4edZJ\/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB\/JUMU7FB7THTK1YAH+bW0CL3NPP\/WGeQHjL\/PVPOAOVAIDODENXONWUMINPSTA6HVHJ5MJXDVIOEHUWZCHFFFJNDW6GUTBRCBHYTTK4=”


问题是JSON会转义一堆字符,而返回一个字符串会转义它自己的一组字符。这里有一些关于流式WCF JSON repsones的文章,可以帮助返回,但没有任何东西可以解决传入的问题。我从JSON切换到XML。

。Net没有添加
\”
到字符串的开头和结尾;这就是调试器显示它的方式。请向我们展示您的代码。事实上,这不是调试器,因为字符串是:“\”zkWv1UuGZX08g1s\/k\/Rp4edZJ\/QkuQO88HxpWtpsSfZt4kdWotuqzDy7+YgrB\/JUMU7FB7THTK1YAH+BWW0CL3NPP\/WGeQHjL\/PVPOAOVAIDONWUMINPSTA6HVJ5MJXDVIOEHWZCHFxFJNDWJFJNDW6TGHYTK4=\”您可能在某个地方犯了错误。请向我们显示您的代码。请确保在发送字符串时字符串没有文字
\“
。看起来您是在不应该的时候添加它们。