作者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://www.ptt.cc/bbs/AndroidDev/M.1401841603.A.1A5.html
推 kewang:ip問題 06/04 08:35
※ 編輯: aallens (210.64.29.203), 06/04/2014 09:08:35
→ aallens:ip改成了192.168.x.x的~也不行~ 06/04 09:08
推 chiel:你用模擬器跑嗎? 06/04 09:30
推 slemonade:看看網段是否一樣,我常沒同網段就在測(殘唸 06/04 12:27
→ aallens:我用手機跑的~~~ 06/04 14:35
推 Lycca:Internet permission? 06/04 14:47
→ aallens:哪個也加入了~ 06/04 15:05
→ aallens:主要在Try的第一行就跳到catch了~ 06/04 15:17
→ aallens:Exception類別是Android.os.NetworkOnMainThreadException 06/04 16:41
※ 編輯: aallens (210.64.29.203), 06/04/2014 17:31:37