0
我想连接一个服务器,这是从我的电脑从android设备分配的。 两者都连接在同一个网络中。 IP我的电脑:192.168.1.135 在端口监听:9000连接被拒绝android
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
new Thread(new Runnable() {
public void run() {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.135:9000/application/login");
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "timestron"));
nameValuePairs.add(new BasicNameValuePair("password", "00000"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
readStream(response.getEntity().getContent());
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
///////////////////////////////////-fin oncreate
}
private void readStream(InputStream in) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
我补充了一句,以获得权限在manifest.xml
错误连接INTERNET:
01-12 16:52:59.165: W/System.err(8406): org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.135:9000 refused
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
01-12 16:52:59.165: W/System.err(8406): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
我可以从浏览器打开网址,我会检查这个工具,谢谢。 – timestron
像'tcpdump port 9000'应该就够了。然后,尝试执行你的应用程序。如果你没有看到数据包,这意味着出于某种原因,你的连接尝试没有到达那台机器(例如,我写第三个原因)。否则,您将不得不调试运行该Web服务器的机器(可能是某些SELinux/AppArmor类应用程序阻止访问)或代码,但我认为这不太可能,因为您没有得到任何异常。 – nKn
Windows有没有类似的东西? – timestron