0

iOS アプリで SOAP Web サービスに SudzC を使用しています。私が直面している問題は、自動生成されるメソッドがあり、そのパラメーターに単純な XML ペイロードが含まれていることです。XML ペイロードを NSString としてパラメーターに送信すると、XML ペイロードの & が & amp; に自動的に変換されます。

このプロセスでは、手動でエンコードを使用していません。どうすればこれを回避できますか? どんな助けでも大歓迎です。

編集 - これは、自動生成され、リクエストによって処理されるコードの一部です

if(postData != nil) {
    [request setHTTPMethod: @"POST"];
    [request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField: @"Content-Type"];        
    [request setHTTPBody: [postData dataUsingEncoding: NSUTF8StringEncoding]];
    if(self.logging) {
        NSLog(@"%@", postData);
    }
}

ありがとう

ニシン

4

1 に答える 1

1

簡単な答えは、SudzCによって生成されたコードを調べる必要があるということです。ただし、ヒントは、応答を要求または受信するときに、SudzCコードがコードをどこかでサニタイズしている可能性があり、おそらくメソッド名がserializeElementであるということです。XMLリクエストの場合は、メインメソッドからSoap Createメソッドにジャンプしてみてください(推測ですが、コードがどのように機能するかはわかりません)。これに似たコードを見つけて、それに応じて変更してください。

[[self.YourXML stringByReplacingOccurrencesOfString:@"\"" withString:@"""] stringByReplacingOccurrencesOfString:@"&" withString:@"&"]];
于 2012-05-13T15:13:43.547 に答える