私はまったくの初心者Android
でWebServices
、現在、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());
}
}
}
お時間をいただきありがとうございます