2012-02-13 14 views
0

私はアンドロイドクライアントからWcf web sericeに接続しようとしています。私のクライアントは単純なデータ型でうまく動作しますが、複雑なデータを呼び出すときに問題を起こしています。私はinfo.setValue(資格情報)を実行せずに資格情報を送信するたびに、私は、サーバーが、ユーザー名とパスワードフィールド空白にリクエストを送信することができています。ここWCF Webサービスへのksoapリクエストの複雑なタイプの送信

Credentials credentials=new Credentials(); 
    credentials.Username="xyz"; 
    credentials.Password="123"; 
    PropertyInfo info=new PropertyInfo(); 
    info.setName("credentials"); 
    info.setValue(credentials);    
    info.setNamespace(NAMESPACE); 
    info.setType(new Credentials().getClass()); 
    request.addProperty(info); 


        SoapSerializationEnvelope envelope = 
          new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        envelope.dotNet = true; 
        envelope.setOutputSoapObject(request); 


        HttpTransportSE httpTransport = new HttpTransportSE(URL); 
        Object response=null; 
        httpTransport.call(SOAP_ACTION, envelope); 
        response = envelope.getResponse(); 

: 私はこれを行っています。 このinfo.setValue(資格情報)を追加すると、私はeserilizationエラーが発生します。私はこの2〜3日を無駄にしてくれました。

+0

あなたはJson文字列またはSOAP形式の応答を受け取っていますか?Json文字列として応答を受け取ったら、要求をハードコードできます。 –

+0

いいえリクエストを送信しているだけでなく、SOAP形式でリクエストを受信して​​います。 – user582776

答えて

0

私は私の質問のための解決策を得ました。私はJavaとアンドロイドクライアントで生成されたリクエストに気付きました。

Javaクライアント

<?xml version='1.0' encoding='utf-8'?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body><ns4:myfunction xmlns:ns4="http://tempuri.org/"> 
<ns4:newMobile>91----------</ns4:newMobile> 
<ns4:countryId>1</ns4:countryId> 
<ns4:credentials> 
<ns2:Password xmlns:ns2="http://schemas.datacontract.org/2004/07/mycompanyWebService.Models">123</ns2:Password> 
<ns2:Username xmlns:ns2="http://schemas.datacontract.org/2004/07/mycompanyWebService.Models">xyz</ns2:Username></ns4:credentials> 
</ns4:myfunction> 
</soapenv:Body> 
</soapenv:Envelope> 

のAndroidクライアント

<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"><v:Header /><v:Body> 
<myfunction xmlns="http://tempuri.org/" id="o0" c:root="1"> 
<Mobile i:type="d:string">91----------</Mobile> 
<countryId i:type="d:string">1</countryId> 
<credentials i:type="d:anyType"> 
<Username i:type="d:string">hm.1</Username> 
<Password i:type="d:string">123</Password></credentials> 
</myfunction> 
</v:Body> 
</v:Envelope> 

Javaクライアントの場合はそれがなく、アンドロイドで働いていたので、私は開始タグを変更するために、マーシャリング使用し、それは私のために働いた。

関連する問題