標籤:android http io ar os sp for 資料 on
============問題描述============
private static final String URL = " ";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) this.findViewById(R.id.textView2);
user = (EditText) this.findViewById(R.id.editText1);
password = (EditText) this.findViewById(R.id.editText2);
button = (Button) this.findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 實現串連伺服器的功能
init();
}
// 用POST的方法實現
private void init() {
// TODO Auto-generated method stub
boolean flag = false; // 成功與否的標記
String user1 = user.getText().toString().trim();
String password1 = password.getText().toString().trim();
try {
HttpPost request = new HttpPost(URL);
List<NameValuePair> parms = new ArrayList<NameValuePair>();
parms.add(new BasicNameValuePair("id", user));
parms.add(new BasicNameValuePair("password",password1));
request.setEntity(new UrlEncodedFormEntity(parms,
HTTP.UTF_8));
HttpResponse response = new DefaultHttpClient()
.execute(request);
if (response.getStatusLine().getStatusCode() != 404) { // 現在已經發現了資料了
flag = Boolean.parseBoolean(EntityUtils.toString(response.getEntity()).trim());
response.getStatusLine().getStatusCode());
}
} catch (Exception e) {
// TODO: handle exception
tv.setText("WEB伺服器串連失敗……");
}
if (flag) {
tv.setText("使用者登入成功!" + flag);
} else {
tv.setText("使用者登入失敗!" + flag);
}
}
});
}
============解決方案1============
你的url呢?沒給具體ip路徑? 模擬器本來就在電腦上,可以直接存取伺服器。
你在真機上需要關閉電腦防火牆,通過具體的內網ip地址訪問。真機和服務端要處於同一區域網路
android用戶端與伺服器互動,在模擬器能夠得到伺服器的響應,但是在真機得不到伺服器的響應,請問怎麼回事?程式如下: