作者aallens (ALLENS)
看板AndroidDev
标题[问题]用AndroidAPP呼叫WebService
时间Wed Jun 4 08:26:40 2014
各位大大好~
小弟想试着用AndroidAPP写一个呼叫自己另外用.Net架设的WebService
但是似乎都没有反应~
不知道是否哪边出问题了?
下面的Code e.getMessage()都是空值~
所以我才又加一行~把button.text="xxx"
最後运行结果~Button的text都会变成xxx~表示真的有进入exception~
Code如下:
public void doSomething(View v)
{
Button btn = null;
btn=(Button)findViewById(R.id.button1);
String NAMESPACE = "
http://tempuri.org/";
String URL = "
http://127.0.0.1:2282/service1.asmx";
String SOAP_ACTION = "
http://tempuri.org/HelloWorld";
String METHOD_NAME="HelloWorld";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
btn.setText(result.toString());
}
catch(Exception e)
{
e.printStackTrace();
btn.setText(e.getMessage());
btn.setText("xxx");
}
}
---------------------------------------------------------------------
找了一整天~终於找到问题了!!!
Android 3.0以上~
要在OnCreate加上下面的资讯
@SuppressLint("NewApi") //这一行要加
@TargetApi(Build.VERSION_CODES.GINGERBREAD) //这一行要加
@Override
protected void onCreate(Bundle savedInstanceState) {
//这一整段都要加
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.penaltyLog()
.penaltyDeath()
.build());
//--------------------------------------
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.64.29.203
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1401841603.A.1A5.html
1F:推 kewang:ip问题 06/04 08:35
※ 编辑: aallens (210.64.29.203), 06/04/2014 09:08:35
2F:→ aallens:ip改成了192.168.x.x的~也不行~ 06/04 09:08
3F:推 chiel:你用模拟器跑吗? 06/04 09:30
4F:推 slemonade:看看网段是否一样,我常没同网段就在测(残念 06/04 12:27
5F:→ aallens:我用手机跑的~~~ 06/04 14:35
6F:推 Lycca:Internet permission? 06/04 14:47
7F:→ aallens:哪个也加入了~ 06/04 15:05
8F:→ aallens:主要在Try的第一行就跳到catch了~ 06/04 15:17
9F:→ aallens:Exception类别是Android.os.NetworkOnMainThreadException 06/04 16:41
※ 编辑: aallens (210.64.29.203), 06/04/2014 17:31:37