問題タブ [uritemplate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF WebGetAttribute の UriTemplate プロパティの奇妙な動作
私はこれのためにキーボードに頭をぶつけました。
Yahoo GeoPlanet サービスにアクセスするために使用できるWCF クライアント プロジェクトがあります。フリーテキスト クエリのエンドポイントの 1 つは、次のように表すことができます。
次のように (多かれ少なかれ) WCF クライアントを呼び出すこれの実装があります: (ここには再試行ロジックがありますが、これは要約すると次のようになります)
問題は、query
パラメーターが URL エンコードされていても、WCF が実際の HTTP 要求を発行するまでに、 の値が%2F
スラッシュ ( /
) に変換されることです。その結果、次のような検索"Saint Augustine Tunapuna/Piarco, Trinidad and Tobago"
は (当然のことながら) Yahoo サーバーによって 400 Bad Request で拒否されています。
最悪の部分は、クライアント ライブラリが非ビジュアル スタジオ プロジェクトの参照として使用されている場合にのみ発生するように見えることです。プロジェクトには次のテストがあり、常に合格します。
このライブラリを別のプロジェクトで使用すると、クライアント .csproj が他のプロジェクトのソリューションの一部であり、プロジェクト参照として参照されている場合にのみ機能します。NuGet パッケージまたは直接の dll ファイル参照として含めるとすぐに失敗します。
私はコードにステップダウンしました.URLがに渡されるまでに正しくエンコードされているようですChannel
. ただし、その後しばらくすると%2F
、検索文字列の がスラッシュに変換されます。私がこれを知っている唯一の理由は、フィドラーでリクエストを検査することです。
c# - UriTemplate からの WCF REST パラメーターの一部の文字は、HTML でエンコードされています
次の Web サービス インターフェイス (WCF サービス) メソッドが定義されています。
"(host)/sites/1234/storage/%D0%BC%D0%B0%D0%BC%D0%B0.html" に対して HTTP POST リクエストを実行すると、 .html")
パラメーター filePath は "мама.html" として読み取られますが、これは誤りです。
「мама.html」として直読していただきたいです。
ただし、「м」は、"м" 文字の html エンコード バージョンです。
WCF/UriTemplate がこのように動作するのはなぜですか? 文字列の直接表現を直接取得し、一部の文字を html エンコードしないようにするにはどうすればよいですか? このための web.config の設定はありますか? バグですか?
spring - Spring MVC URI テンプレート処理は RFC 6570 を実装していますか?
Spring MVC の URI テンプレートがどのように解析されるかについて、決定的な答えを見つけようとしています。ドキュメンテーションはドラフト RFC にリンクしていますが、Spring はRFC の実装ページに 記載されていません。誰でも私のためにこれをクリアできるリンクを持っていますか?
wcf - WCF url $ の特殊文字は、.NET 4.5 を使用する Windows 2012 ではなくなりました
uri テンプレートを使用する WCF REST API があります。これらの Uri テンプレートの 1 つは、[WebGet(UriTemplate="List/Data.svc/$count")] のようになります。
Windows 2008r2 では、この URL は正常に機能しますが、一部の 2012 サーバーでは失敗します。ログ (IIS ログではなく、私が内部的に書いたログ) を見ると、2008r2 要求は次のようになります。
2012 サーバーの URL は次のようになります。
同じデバイス上のまったく同じアプリが両方のリクエストを行っているため、99.999% 確信しており、これはアプリがリクエストを行う方法に違いはありません。
WCF は着信要求に対して URL エンコードを行いますか?
WCF 用の Windows Server 2012 上の .NET 4.5 に関連する KB 修正がかなりありますが、包括的なリストを見つけることができず、この問題に関連していると思われる修正も見つかりませんでした。
Windows 2012 サーバーでは、.../test.svc/$test に移動すると動作し、「テストは成功しました!」と表示されます。Windows Server 2012 r2 サーバーで同じことを行うと、「Bad!! This is not the right route!」となります。
wcf - OperationContract 名と UriTemplate
サービスメソッドを作成します。これには OperationName と UriTemplate があります。私のシナリオに基づいて、この 2 つの名前を混同しています。
私の理解
エイリアスなどのメソッドの名前を指定する操作コントラクト名。したがって、UriTemplate を指定しなかった場合、name 属性で指定された名前は、以下のような名前として取得されます
UriTemplate を使用してパラメーター バインディングをバインドし、パラメーター マッピングをカスタマイズできるようにします。したがって、 /MyMethod/{p1} のような UriTemplate を追加すると、サービスは次のように表示されます
これが私の混乱です。それで、両方を追加しても名前に影響はありませんか?次に、使用するベストプラクティスです。正確な意味と、使用するベストプラクティスを教えてください。
java - 1 つの URI テンプレートの形式での無制限の数のパス変数
私の既存のコードは以下の通りです:
上記と同じパターン (つまり、/id/type/answer/id/type/answer/id/type/answer/. ..等。)。
したがって、理想的には、次の URL の両方をサポートできる API 呼び出しを作成できるようにしたいと考えています。
http://www.example.com/sendAnswer/id1/typeA/0
と
http://www.example.com/sendAnswer/id1/typeA/0/id2/typeB/1/id3/typeA/0
誰にもアイデアはありますか?
c# - カスタム WCF 4.5 WebHttpBehavior を使用した UriTemplates
カスタムの WCF REST 動作を実装しています。これは、基本 WebHttpBehavior を実装/オーバーライドしますが、カスタム シリアライザーを使用して REST 通信を可能にします。このコードは、Carlos のここでの作業に基づいています。
私はそれを実行しましたが、実際には UriTemplate 機能を使用して真の REST-ful URI を許可したいと考えています。誰かがこれを見たことがありますか、または適切な実装を見つけるための助けを提供できますか?
REST エンドポイントと SOAP エンドポイントを同時に提供するために意図的に WCF に固執しているため、ここでは Web API に移行することはできません。