2017-05-14 17 views
0

私はこの問題を探していましたが、私の場合と同じではありませんでした。C#WebAPI - パラメータがQueryStringとして渡されたURLを取得する

私は、次のコントローラがあります。streamURL

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

は、クライアントから送信された完全なURLを取得するパラメータです。 http://www.myservice.com/.../GetMyService/?aType=1&streamURL=http://www.client.com/?p1=100&p2=200

問題はその後、最後に、私はhttp://www.client.com/として[FromUri]文字列streamURLパラメータを取得することです:

クライアントはそのようなサービスを呼び出しますか? P1 = & P2 = 200

なしの100は、これは知られており、合理的な、しかし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 

基本的にサーバー側で何もできないことがあるので、クライアントを修正する必要があります。

関連する問題