2010-02-17 103 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();