2

So I am trying to contact an asp.net API that wants the parameters as an xml-string: /v3/publicservice.asmx/GetSearchResultAdvancedXml?queryXml=string

http://api.tradera.com/v3/publicservice.asmx?op=GetSearchResultAdvancedXml

Thing is, I get this message: "A potentially dangerous Request.QueryString value was detected from the client."

Which appearantly is solved by: https://stackoverflow.com/a/2673905/585137

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>

I want submit this somehow in android java with Http get.

How do I send requestValidationMode="2.0" ?

4

2 に答える 2

0

送信している文字列の種類を知り、その問題を取得するのは興味深いことです。

これは、クロス サイド スクリプティング攻撃を防ぐASP.NET 4 http://www.asp.net/whitepapers/request-validationで導入された検証が原因で発生します。

他のリンクで見た構成はsubmiited、Android デバイスからのものではありません。サーバー側で行う必要があります。

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>

これを行う方法は次のとおりです

その結果、以前はエラーをトリガーしなかったリクエストに対して、リクエスト検証エラーが発生する可能性があります。ASP.NET 2.0 要求検証機能の動作に戻すには、Web.configファイル に次の設定を追加します。

<httpRuntime requestValidationMode="2.0"/>

また、xml 文字列をエンコードする場合は、Java でより簡単な方法を使用できます。

encodedString = UrlEncoder.encode(unencodedString)

次を使用してC#でデコードします。

unencodedString = Uri.UnescapeDataString(encodedString);
于 2013-10-01T16:40:02.147 に答える