0

以下のように、パラメータ文字列内の不正な文字(RFCによる)のみを予期して受け入れるサードパーティのWebサービスを呼び出す必要があります。

http://example.com?param1={foo=bar}

この例では、中括弧は不正な文字であり、エンコードする必要がありますが、これらの文字がエンコードされている場合、このWebサービスはパラメーターを受け入れません。

NSURLではNSURL、メソッドを使用してオブジェクトを作成できませんURLWithString。例のような文字列を使用してnilを返します。

Webサービスは大企業によって提供されているため、変更するにはバグレポートを提出する必要があります。これは、特にAPIがそのまま機能することを考慮すると、すぐに対応できる場合とできない場合があります。

私の質問は、Webサービスを変更せずに実装できる、この問題に対するいくつかの可能な解決策は何ですか。

現在のアイデア(欠点)CFStreamを使用してカスタムHTTPリクエストを作成する(恐ろしく大量の作業)アプリケーションに代わってリクエストを送信できるWebベースのプロキシを使用する(追加の外部依存関係)

ありがとう

4

1 に答える 1

2

あなたがやろうとしていることは不可能です。これらの文字を URL エンコードする必要があり、サーバーが自動的にデコードします。

何らかの方法で NSURL をハッキングできたとしても、プロセス全体の多くの部分で、不正な URL が原因で詰まる可能性があります。

于 2012-05-14T05:17:49.407 に答える