2017-05-14 192 views
0

我一直在尋找這個問題,但非我的情況是相同的。C#WebAPI - 獲取URL作爲查詢字符串傳遞參數

我有以下控制器:

public HttpResponseMessage GetMyService(int aType, [FromUri] string streamURL) 

streamURL是獲取客戶端發送一個完整的URL的參數。

客戶端調用這樣的服務: http://www.myservice.com/.../GetMyService/?aType=1&streamURL=http://www.client.com/?p1=100&p2=200

的問題是,在隨後結束,我得到[FromUri]字符串streamURL參數作爲http://www.client.com/P1 = 100而不& P2 = 200

這是已知的和合理的,但作爲URL是在一開始切割我不能放置任何編碼/解碼功能。

任何幫助,將不勝感激..

THX

+0

客戶端應在URL發送到您的服務之前對其進行編碼,然後可以根據需要對其進行解碼和使用。我不認爲你的服務可以做很多事情,因爲它不能區分新的查詢字符串參數和從客戶端發送的URL的延續。 – James

+0

'streamURL'值必須是Url被呼叫客戶端編碼 – Nkosi

+0

客戶端如何提出請求?什麼是客戶?提供可用於重現問題的[mcve]。 – Nkosi

回答

3

客戶端應發出請求,以符合HTTP協議規範,當streamURL查詢字符串參數的適當URL encode值:

http://www.myservice.com/.../GetMyService/?aType=1&streamURL=http%3A%2F%2Fwww.client.com%2F%3Fp1%3D100%26p2%3D200 

所以基本上你在服務器端沒有什麼可以做的,你應該修復客戶端。

相關問題