我正在编写Windows商店应用程序,并在我的DAL中从Web服务获取XML数据。 我正在使用网站的API公开的HTTP GET请求和响应。在Windows Store应用程序中GET/POST请求参数编码问题
我是能够成功地摆脱各种方法,数据不需要参数, 或获取整数parametrs ..
问题开始时,我不得不使用字符串参数,顺利通过英语字符串,但字符串在希伯来语别。
当我使用由网站的API开发的测试表单,输入说“נאפיס”到文本框,它返回一个XML罚款,并与嗅探器,我看到该字符串编码为%E3%E9%F7 %F1%E9
当我用相同名称的代码自己构建URI时,我只获取XML的模式,并且我看到该字符串编码为%D7%93%D7%99%D7%A7%D7 %A1%D7%99 - 含义用UTF-8编码的URL ..
我尝试编码到希伯来语并解码回UTF-8,并得到这个字符串:ðàôéñ 当我把它放在这样的工具: http://coderstoolbox.net/string/ i se如果我URL编码的字符串(ðàôéñ),我会得到所需的%F0%E0%F4%E9%F1。
所以我把这个字符串发送给api,但它只是返回没有实际数据的XML模式,但它显示为%C3%B0%C3%A0%C3%B4%C3%A9%C3%B1。
我试过的另一种方法是以不同的方式对希伯来字进行编码。 由于WinRT不支持“httputility”,我不得不用反射器将其导入。..必须告诉你,这是没有趣..
我结束了编码的“נאפיס”与%u05e0%u05d0 %u05e4%u05d9%u05e1 当我使用它从一个浏览器,像这样:
它的伟大工程,获得实际的XML数据,并在嗅探器,参数保持不变(%u05e0% u05d0%u05e4%u05d9%u05e1)。
但是当我使用它从我的代码,我再次得到的只是架构,并在嗅探器,我看到字符串被编码到这一点: %25u05e0%25u05d0%25u05e4%25u05d9%25u05e1 这意味着它是网址再次编码!
我从这个如此绝望。我试了一下所有的组合..
有谁对这个想法?谢谢。