0

私はまったくの初心者AndroidWebServices、現在、Web サービス、SOAP などに関する多くの情報を読んでいます。

Hello とだけ言う Web サービスの例を作成しようとしています。ブラウザでは動作しますが、Android デバイス/エミュレータからは動作しません。その IP を PC の ipv4 アドレスに設定し、ファイアウォールとウイルス対策をオフにしました。ただし、ブラウザでこの IP に接続しようとすると、404 と表示されます (これが正常かどうかはわかりません) また、次の URL でローカル IIS を使用しています: http://localhost/HelloAndroid.

私のWebサービスのコードは次のとおりです。

namespace HelloAndroid
{
    [WebService(Namespace = "http://sample.com/")]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string SayHello()
        {
            return "Hello, Android from .NET";
        }
    }
} 

Android アクティビティ:

public class SoapTestActivity extends Activity {
    TextView result;

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

        result = (TextView)findViewById(R.id.result);

        final String NAMESPACE = "http://sample.com/";
        final String METHOD_NAME = "SayHello";    
        final String SOAP_ACTION = "http://sample.com/SayHello";
        final String URL = "http://192.168.1.35/HelloAndroid/Service1.asmx";

        try {
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);            
            SoapSerializationEnvelope envelope = new      SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);

            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            androidHttpTransport.call(SOAP_ACTION, envelope);
            SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
            String resultValue = response.toString();

            result.setText(resultValue);          
        }
        catch (Exception e) {
            result.setText(e.getMessage());
        }
    }
}

お時間をいただきありがとうございます

4

1 に答える 1