2012-05-14 1 views
0

私は、以下のように、その文字列の中に(RFCに基づいて)不正な文字だけを受け取り、受け入れるサードパーティのWebサービスを呼び出さなければなりません。NSURLConnectionをURLに不正な文字を使用する

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

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

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

webserviceは大企業のエンティティによって提供されているため、バグレポートを送信する必要があります。これは、APIがそのまま動作することを考慮すると、まもなく実行される場合もあります。

私の質問は、Webサービスを変更せずに実装できる、この問題に対するいくつかの可能な解決策です。自分のアプリケーションに代わっ(追加の外部依存関係)にリクエストを送ることができるWebベースのプロキシを使用して、カスタムHTTPリクエスト(仕事の恐ろしく大量に)作るためにCFStreamを使用し

現在のアイデア(マイナス面)

おかげ

+1

「http://example.com?param1 =%7Bfoo = bar%7D'」というWebサービスでは好奇心をそそらえていますか? –

答えて

2

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

何らかの形でNSURLをハックする可能性がある場合は、不正な形式のURLでチョークするプロセス全体の多くの部分が残っています。