作者joshnash (JoshNash)
看板AndroidDev
標題[問題] PHP傳送資料到android問題
時間Tue Feb 7 01:00:54 2012
***文章有點長, 不好意思***
小弟現在在想辦法寫出
android程式可以connect到簡單的網頁
然後網頁(php)可以回傳字串給app上
因為是剛接觸android&java
所以照著教學一步步作:
http://ppt.cc/6-ZY
不過由於還沒建立database,
網頁端我只簡單的寫了這樣 (不知道這樣可不可以讓app接收到??)
<?php
$output="AAA";
print(json_encode($output));
?>
而剩下大致都一樣
這是java檔:
http://dl.dropbox.com/u/5362111/android_java.txt
還麻煩大家可以幫忙看一下~
這樣跑的結果app還是馬上crash掉
log的第一條是這樣
Error in http connection android.os.NetworkOnMainThreadException
看樣子是這邊的exception抓到的
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("
http://140.113.235.47/~lihsing/main.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
有google那條error log的解決方式
不過台灣好像很少資料, 幾乎都老外在討論
可惜也看不懂=_= 而且solution都不太一樣
希望板上前輩能指點迷津一下!
Thanks!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.121.222
1F:推 LaPass:把那行 Error拿去Google找不到嗎? 02/07 01:06
2F:→ LaPass:我記得之前聽過 新版的ANDROID在主執行緒內連網路會直接吐 02/07 01:07
3F:→ LaPass:錯誤出來,看起來應該是那個原因。 02/07 01:07
4F:→ LaPass:解決方式是,把連結網頁的動作移到別的執行緒內去做 02/07 01:07
5F:→ joshnash:感謝你的回應, 再goo一次老外的討論好像就看懂了 02/07 01:19
7F:→ joshnash:thanks, 我再查查怎麼移到別的thread~ 02/07 01:21
8F:→ joshnash:再補: Painless threading #1DTvi2zd(AndroidDev) 02/07 01:26
9F:推 gpc:target sdk level過高 不能有network在主thread 02/07 14:04
10F:→ gpc:請參考activitythread.java 02/07 14:04