Я пытаюсь подключиться на сервере, который выделяется на моем компьютере с устройства Android. Оба подключены в одной сети. IP моего компьютера: 192.168.1.135 Прослушивание в порту: 9000Connection failed 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);
}
}
я добавил фразу, чтобы получить разрешения для подключения INTERNET в Manifest.xml
Ошибка:
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)
Я могу открыть URL-адрес из браузера, я проверю этот инструмент, спасибо. – timestron
Кое-что вроде 'tcpdump port 9000' должно быть достаточно. Затем попробуйте выполнить свое приложение. Если вы не видите пакеты, это означает, что по какой-то причине попытка подключения не доходит до этой машины (например, по третьей причине, которую я написал). В противном случае вам придется отлаживать либо машину, на которой работает этот веб-сервер (возможно, какое-либо приложение типа SELinux/AppArmor, блокирующее доступ), либо код, который, я думаю, менее вероятен, потому что вы не получаете никакого исключения. – nKn
Есть ли что-то подобное для Windows? – timestron