Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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# 为什么RESTAPI的响应在我的代码中不是JSON格式的,而是带有Google扩展名的正确格式;雷斯曼;?_C#_Json_Rest_Format_Response - Fatal编程技术网

C# 为什么RESTAPI的响应在我的代码中不是JSON格式的,而是带有Google扩展名的正确格式;雷斯曼;?

C# 为什么RESTAPI的响应在我的代码中不是JSON格式的,而是带有Google扩展名的正确格式;雷斯曼;?,c#,json,rest,format,response,C#,Json,Rest,Format,Response,为什么RESTAPI的响应在我的代码中不是JSON格式?但谷歌的扩展名“RestMan”的格式是正确的。我的代码如下: \u001f�\b\0\0\0\0\0\u0004\05��n�P\u0010�_�b�D\\�#�3�`��1\u001c\u000e\aÎ�[.\a�\b\u000e6Q\u0017ݴY�=��*+}\u0018��Lq��f4��#���0$�i�<6�a7f�>ߕ�#�;�I���M�kN�q0՞�\u0012��\\�jy�%s]�\u001fD\\X�c

为什么RESTAPI的响应在我的代码中不是JSON格式?但谷歌的扩展名“RestMan”的格式是正确的。我的代码如下:

\u001f�\b\0\0\0\0\0\u0004\05��n�P\u0010�_�b�D\\�#�3�`��1\u001c\u000e\aÎ�[.\a�\b\u000e6Q\u0017ݴY�=��*+}\u0018��Lq��f4��#���0$�i�<6�a7f�>ߕ�#�;�I���M�kN�q0՞�\u0012��\\�jy�%s]�\u001fD\\X�c�Oa�6�=,\v�À(\u000e�ׁbՖ[�إ+ª�K�銕*�A\u001b�t�/��+Z�pPe\u0003\t�\u0005h �w\u0006�:TX��I�e��a��JR;\u000e�C%Yc\"/\u0093T�*�\u0002Jr��ҥ2@%��lv2�X�\u0001R1�8䴓��Ǎ�8\u0001�]�ru�hD��\u000fv�`ċ.��f�Gm�� �u=����\u001f�\u0004#N��\f�!�z\u001b\u0017�\u0001�uCa��\\\a�\u0016��B\u0015���it�\u001f��K7\u0019�\r%\u0017�\u0012�\u0006����Ln�\r}��\u0011\a��G��iબ��0����\u0004C\u0001�p��\u0004�\u0016�<Z�.�}v]���\u001e \u0014*������\u0012>��u�x��J��6$�������ML�m��T�7�S�3\u0019��>�\u001a`<��\u00193�R\u0018\u0014�������_���2���o����\\_����\a���=�X\u000e�1\u0003�z_㴡7[��?_���?n����u�/\u007f\u0001b�Q�S\u0002\0\0
使用(WebClient=newWebClient())
{
字节[]响应=客户端。上载值(“http://personnel.fasau.ac.ir:8085/PersonApi/api/Token/Login,新名称ValueCollection()
{
{“用户名”,“名称”},
{“密码”,“通过”}
});
字符串结果=System.Text.Encoding.UTF8.GetString(响应);
}
我得到的回应是这样的:

\u001f�\b\0\0\0\0\0\u0004\05��n�P\u0010�_�b�D\\�#�3�`��1\u001c\u000e\aÎ�[.\a�\b\u000e6Q\u0017ݴY�=��*+}\u0018��Lq��f4��#���0$�i�<6�a7f�>ߕ�#�;�I���M�kN�q0՞�\u0012��\\�jy�%s]�\u001fD\\X�c�Oa�6�=,\v�À(\u000e�ׁbՖ[�إ+ª�K�銕*�A\u001b�t�/��+Z�pPe\u0003\t�\u0005h �w\u0006�:TX��I�e��a��JR;\u000e�C%Yc\"/\u0093T�*�\u0002Jr��ҥ2@%��lv2�X�\u0001R1�8䴓��Ǎ�8\u0001�]�ru�hD��\u000fv�`ċ.��f�Gm�� �u=����\u001f�\u0004#N��\f�!�z\u001b\u0017�\u0001�uCa��\\\a�\u0016��B\u0015���it�\u001f��K7\u0019�\r%\u0017�\u0012�\u0006����Ln�\r}��\u0011\a��G��iબ��0����\u0004C\u0001�p��\u0004�\u0016�<Z�.�}v]���\u001e \u0014*������\u0012>��u�x��J��6$�������ML�m��T�7�S�3\u0019��>�\u001a`<��\u00193�R\u0018\u0014�������_���2���o����\\_����\a���=�X\u000e�1\u0003�z_㴡7[��?_���?n����u�/\u007f\u0001b�Q�S\u0002\0\0
尝试unicode编码:

string result = System.Text.Encoding.Unicode.GetString(response);
试着设置一个

client.Headers.Add(“Accept”、“application/json”);
更新:也可能使用Gzip压缩压缩中的响应。首先使用helper函数解压缩字符串,然后使用JSON序列化程序对其进行序列化

我在代码中用来解压Gzip的助手函数

使用系统;
使用System.IO;
使用系统IO压缩;
使用系统文本;
公共字符串解压缩字符串(字符串s,编码)
{
//在下面的步骤中从字符串中获取字节
//在我的例子中,它是一个基64字符串
//如果没有,请使用encoding.GetBytes()函数
var bytes=Convert.fromBase64字符串;
使用(var msi=新内存流(字节))
使用(var mso=new MemoryStream())
{
使用(var gs=new GZipStream(msi,CompressionMode.decompresse))
{
一般事务副秘书长(mso);
}
返回encoding.GetString(mso.ToArray());
}
}
var originalRes=//在此处调用函数
var decompressedRes=helper.decompressgzip字符串(originalRes,Encoding.UTF8);

使用unicode编码,现在我得到以下响应:謟\b\0\0\u0004鄽狉䂛䔔䕿嫅ㅱ깈㭈\u0c5b䄂虣虮퍝脐䁨蓖꧔눬뱉翈姈咥쟎艧좲嗪瞽\乌阿比ꘐ쩅睍綛\ua6fc櫌쩮❥伣刴藘䎡\u0ba6킠窷軭䳉ힿ痋暈螮ꒄ잢䀴銟�廅ꑿ蚏\ua955嘦栄暣⠔覱怫諠Ɱ㻨锣ᢈꖭ刄⢅Ꚕ鐂繼\u2429计숗靁狢䕜㸬灸⏭嚉ﲁ䈠줟눖₄ꅰ賃鷘붃剟\u2d2f귳↭噆뚠ꎴ햖鲮\u0dceᇓ趕σ⢏᎓阊⢣䩜䁮쁣葔㔵⣆촀밗ቛ牭쩲ј蹲抳硒솁ꇇ߂湡쥣\ufde0ꠒ㔞�ޗ쥤慼\u0cce蜅䶠甴↓价ﭮ命蕅劽䭄┮ጠ拉ꭰ桗୴횣觶쭠Ɛ\u2dafꁰ\ufaf2㦪햂ᣃ䜰찂晴畞缋䬮飄⬷䡰뺼䪄╿洘ܺ뢇㢑缵扇髙皌幏縻䰾킶妩體詖폒薇ꦉ㣓㷪ὦ↹ԩ쪸뛺翟틮皽솗ꗵᵻ潴䟧훷佳덹롫�䏣�马徍홍ퟎ�ﳛ렾杵쯮⅟礭匥\u0002�"请看一下响应中的标题-我怀疑您会发现它的内容编码为gzip。设置accept header后,仍然存在相同的问题。@mandanahosseini可以使用gzip压缩响应。请参阅我更新的答案。谢谢,它被压缩,解决了我的问题。非常感谢。