2010-02-17 102 views
1

我有一个网站,可以在内置的规范下完美工作,但随着SIM卡加密狗的使用量的增加(我不会是第一个将他的头发拉出来的) )遇到一个站点杀问题...(OK OK OK ......完成一天的工作也许)ASP.NET 3.5 Ajax JSON序列化

当移动运营商将获取它通过一个非常聪明的应用程序,它本质上剥离下来,以传递文件的请求'正义'功能。这将返回并且该文件按预期工作,即使它已被略微修改(或在图像的情况下很严重)。

这样做的巧妙软件会重新写入请求标题,这也会导致serialiser忽略响应,因为它不是正确的内容类型......我认为无论如何。

正常请求:Content-Type application/json; charset = utf-8 SIM代理请求:Content-Type text/xml;字符集= UTF-8

发行号一个与此是请求需要在web.config使GET/POST(加容易)

发行号2与该动词,GET请求是建立像这样www.site.com?a.asmx/function?value="a value“ JSON串行器明白这是一个字符串类型,所以它删除附加的引号并接受参数,当串行器不使用时它会实际上添加更多引号“\”一个值\“”。 (易于修复)

发行第三个返回值是XML而不是JSON。需要分配工作,但可以修复,如果我不能找到另一种方式。

我刚刚读了HTTP头'Cache-Control'的W3,显然我可以发送'no-transform',并且(假设它们符合)代理将忽略它。那太棒了。

问题是...如何通过Sys.Net.WebServiceProxy.invoke()更改GET请求的标头值?

对此还有任何经验吗?互联网对这个话题几乎没有任何讨论。

很多在此先感谢任何回应,对于单行问题的文本墙感到遗憾......只是手指穿过某个人之前遇到过这个问题。

回答

0

有一个工作。

编辑保存Sys.Net.WebServiceProxy.invoke函数的文件。

,并把下面一行:

request.get_headers()['Cache-Control'] = 'no-transform'; 

var request = new Sys.Net.WebRequest();