Androidアプリから.netWebサービスを正常に呼び出すことができます。エミュレーター(2.2apilevel8から4.0.3apilevel 15)でテストしたところ、うまく機能しました。
私は今、MotorolarazrMAZZデバイスで同じコードをテストしようとしています。接続されており、ブレークポイントに到達でき、Webサービスへの呼び出しを除くすべての機能を実行できます。「java.net.SocketTimeoutException:接続がタイムアウトしました」というメッセージが表示されます。私のコードは以下に書かれています。エミュレーターでは機能しましたが、デバイスでは機能しませんでした。
URL = UtilsAct.Instance().GetSettingString(ctx, "sett_url");
String str="";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("IsEncrypted",false);
request.addProperty("routes", "EAST");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL,60000);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope); // java.net.SocketTimeoutException: Connection timed out
Object receivedObj = envelope.getResponse();
str = receivedObj.toString();
}
catch(Exception e)
{
//e.printStackTrace();
String errmsg = "Exception:";
if(e.getMessage() != null)
errmsg = errmsg + e.getMessage();
}
私は以下を含む様々な記事で与えられたすべてのトリックを試しました
HttpConnectionParams.setConnectionTimeout(params, timeout);
HttpConnectionParams.setSoTimeout(params, timeout);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(timeout);
urlConnection.setReadTimeout(timeout);
ヘルプに感謝します。ありがとう!