2010-11-30 12 views
0

これは私が私のWebサービスへの接続を取得私の唯一のクラスである:私のWebサービス(SOAP 1.1)へのAndroidからの接続時に任意の応答を取得しよう

public class Main extends Activity { 
    /** Called when the activity is first created. */ 

private static final String SOAP_ACTION="http://tempuri.org/getme/TSM/LogOn"; 
private static final String METHOD_NAME="LogOn"; 
private static final String NAMESPACE="http://tempuri.org/getme/TSM/"; 
private static final String URL="http://theking/eget/WebService/WSAuth.asmx"; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView tv = (TextView) findViewById(R.id.TextView01); 

     SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); 
     Request.addProperty("strUsername", "Test"); 
     Request.addProperty("strPassword", "Test123"); 
     Request.addProperty("strMessage", "hello"); 

     SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     soapEnvelope.dotNet = true; 
     soapEnvelope.setOutputSoapObject(Request); 

     AndroidHttpTransport aht = new AndroidHttpTransport(URL); 
     try 
     { 
     aht.call(SOAP_ACTION, soapEnvelope); 
     SoapObject response = (SoapObject)soapEnvelope.getResponse(); 
      String LogonResult = response.getProperty(0).toString(); 
      String MessageResult = response.getProperty(1).toString(); 
     tv.setText("Status : " + LogonResult + " Message: " + MessageResult); 
     } 
     catch(Exception e) 
     { 
     e.printStackTrace(); 
     } 

    } } 

私はそれがTRYタグの前に壊れると思います。私が仮想スクリーン上に表示するのは:falseです。 すべてのソリューション..私はどこに問題があるのか​​分かりませんか?

次に、SOAPリクエストとレスポンスのサンプルを示します。

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <LogOn xmlns="http://tempuri.org/getme/TSM"> 
     <strUsername>string</strUsername> 
     <strPassword>string</strPassword> 
     <strMessage>string</strMessage> 
    </LogOn> 
    </soap:Body> 
</soap:Envelope> 

    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <LogOnResponse xmlns="http://tempuri.org/getme/TSM"> 
     <LogOnResult>int</LogOnResult> 
     <strMessage>string</strMessage> 
    </LogOnResponse> 
    </soap:Body> 
</soap:Envelope> 
+0

を持っていましたしかし、最初の行の直後になります。aht.call(SOAP_ACTION、soapEnvelope);それはキャッチに行く。 – Neshkowsky

答えて

0

Androidアプリケーションの設定ファイルに、リモートアクセスが許可されていることを確認してください。

また、URLをブラウザに貼り付けて、正しいかどうかを確認してください。

また、ファイルにブレークポイントまたはログを設定して、サービスが呼び出されるかどうかを判断します。

+0

1)私はマニフェストでこれを得ています。use-permission android:name = "android.permission.INTERNET" /> 2)ブラウザに貼り付けるとURLが動いています。 .UnknownHostException:ホストが未解決:gavgamela:80。私は、同じ問題の周りにいくつかのトピックを赤色にしていますが、エミュレータを再作成するとは言いませんが、何もありません。他の解決策? – Neshkowsky

+0

問題が解決しました:-) – Neshkowsky

+0

問題をどのように解決しましたかについていくつかの詳細を教えてください。 –

1

私はトーストのと少しプレイしたし、私はそれがTRY方法で起こっていることを見た私はただのAndroidManifest.xml

これだけ
<uses-permission android:name="android.permission.INTERNET" /> 

にこの権限を追加し、同じ問題:)

関連する問題