GlassfishWebサービステスターを使用してテストされたSOAPリクエスト
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:hello xmlns:ns2="http://WS/">
<name>asd</name>
</ns2:hello>
</S:Body>
石鹸の反応
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:helloResponse xmlns:ns2="http://WS/">
<return>Hello asd !</return>
</ns2:helloResponse>
</S:Body>
ここで、sudzを使用してiOSでこのhelloメソッドを呼び出して、「name」パラメーターをWebサービスに渡そうとします。したがって、これはcreateEnvelope内のコードです。
[s appendString: @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"];
[s appendString:@"<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">"];
[s appendString:@"<S:Header/>"];
[s appendString:@"<S:Body>"];
[s appendString:@"<ns2:hello "];
[s appendString:@"xmlns:ns2=\"http://WS/"];
[s appendString:@"\"/>"];
[s appendString:@"<name>alvin</name>"];
[s appendString:@"</ns2:hello> "];
[s appendString:@"</S:Body>"];
[s appendString:@"</S:Envelope>"];
これは、iOSからアクセスしたときのnetbeansログです。
INFO: Received WS-I BP non-conformant Unquoted SoapAction HTTP header: http://WS/hello
INFO: berhasil null
アンドロイドがアクセスしたときにログに記録する
INFO: Received WS-I BP non-conformant Unquoted SoapAction HTTP header: http://WS/hello
INFO: berhasil Cornel
ただし、常にnullパラメータを返し、Androidではksoapを使用して完全に機能します。上記のエンベロープを使用すると、メソッド(hello)を呼び出すことができますが、nullパラメーターを渡します。T_Tを助けてください