2010-06-22 78 views
0

我有一個web服務來訪問網絡上的一些資源。該服務有一種方法來查找資源並返回資源的路徑。另一種方法,發送請求到這個路徑的web服務。冗長複雜的URI

我嘗試將整個UNC路徑(使用HttpServerUtlility.UrlTokenEncode方法編碼)傳遞給web服務。生成的URI非常長(331個字符),我得到「HTTP 400錯誤請求」。

如何處理如此長的URI?如果我的URI縮短了大約10個字符,那麼請求就會通過。不幸的是,URI的大小是可變的,在某些情況下可能更多。我需要做些什麼改變?配置文件中是否存在允許長URI的設置?

+0

331個字符不是很長。你可能有其他問題。 – 2013-12-28 22:25:24

回答

1

枚舉您想要訪問的資源並將其存儲到由guid索引的字典/ sql表中。

例如:

3941dbffc1b54581837010a42b42635d = //server/path/to/file 

第一種方法將返回GUID,第二個將查找的GUID來查找文件

+0

請注意,您不必提前創建映射。每當第一次請求資源時,爲其創建一個映射,然後利用該映射。如果客戶端要緩存guid,請確保將其存儲在某種持久狀態,以便在重新引導服務器時檢索它等。 – eeeeaaii 2010-06-22 19:50:31

+0

是否有其他方法?每次我都不想查找給定的guid。 – Debby 2010-06-22 20:33:29

+0

我想如果只有幾個資源所在的目錄,你可以使用int來表示目錄查找和文件名。 或者,如果您可以確定文件是唯一命名的,則可以簡單地使用文件名。 如果guid的長度對您來說太多,您可以輕鬆使用ShortGuid之類的內容:http://blog.muonlab.com/2010/03/24/shortening-guids-in-mvc-uris/ – 2010-06-22 23:50:47