綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 【急】為什麼HTTP Request無法對PHP存取?

[複製連結] 查看: 1966|回覆: 4|好評: 0
跳轉到指定樓層
樓主
abcd30282000 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-4-3 21:09
50碎鑽
我想要簡單設計一個 Android 系統登入的介面

可是為什麼一直沒有辦法連上?

程式碼我也是直接複製網路上的範例

發文的人都說可以

可是我實際執行起來卻不行

我也有在 AndroidManifest 加入存取網路的 permission

程式碼如下:

---------------------------------
public class MainActivity extends Activity {
private static final String URL = "http://140.121.196.8/WS/login.php";
private EditText valueA;
private EditText valueB;
private Button button1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

valueA = (EditText) findViewById(R.id.editText1);
valueB = (EditText) findViewById(R.id.editText2);
button1 = (Button) findViewById(R.id.button1);

button();
}

private void button() {
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
HttpClient client = new DefaultHttpClient();
try {
HttpPost post = new HttpPost(URL);
List< NameValuePair> vars=new ArrayList< NameValuePair>();
vars.add(new BasicNameValuePair("account",valueA.getText().toString()));
vars.add(new BasicNameValuePair("password",valueB.getText().toString()));
post.setEntity(new UrlEncodedFormEntity(vars,HTTP.UTF_8));

ResponseHandler< String> h=new BasicResponseHandler();
String response=new String(client.execute(post,h).getBytes(),HTTP.UTF_8);
Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "沒有回應。", Toast.LENGTH_LONG).show();
}
}
});
}
}
---------------------------------

程式跑出來都只會直接到 catch 那邊用 Toast 顯示「沒有回應。」

好像都沒有進入到 try 的部分

怎麼會這樣?

最佳答案

查看完整內容

請善用 thread 來存取 網路。
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
whl | 收聽TA | 只看該作者
發表於 2013-4-3 21:09
請善用 thread 來存取 網路。

點評

那是什麼?那為什麼網路上都說這樣就可以了?  發表於 2013-4-4 00:47

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
abcd30282000 + 1 + 1 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

板凳
whl | 收聽TA | 只看該作者
發表於 2013-4-4 08:29
那是因為 android 版本的問題,新版不支援 ui 下存取網路。

點評

我之前也在想會不會是因為我系統是4.2.2,可是網路上都找不到說明,請問那要怎麼改寫呢?  發表於 2013-4-4 08:37

評分

參與人數 1碎鑽 +1 幫助 +1 技術 +1 收起 理由
abcd30282000 + 1 + 1 + 1 很給力!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

地板
xjxuvup | 收聽TA | 只看該作者
發表於 2013-4-9 08:19
Android 3.0以後在onCreate裡面執行網路動作的話,Android會丟出一個Exception,叫做NetworkOnMainThreadException,如果你在3.0以上的機子上跑,就會出現無法讀取得結果,遇到這種問題,有兩三種解決方式,第一種就是樓上講的使用執行緒,第二種是在onCreate加入一段語法,第三種我沒印象了,相關的資料你可以把例外的名字,key到google查解決方式

評分

參與人數 1碎鑽 +1 幫助 +1 技術 +1 收起 理由
abcd30282000 + 1 + 1 + 1 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

5
whl | 收聽TA | 只看該作者
發表於 2013-4-9 19:39
第三種應該就是 android:targetSdkVersion設定成10或9啦。

評分

參與人數 1碎鑽 +1 幫助 +1 技術 +1 收起 理由
abcd30282000 + 1 + 1 + 1 讚一個!

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則