我在php中有一个托管网站。 Android应用程序尝试打开网页happy.php。当我尝试运行此应用程序时,显示失败,而不是在textview中显示yayyyy。请帮我找错误
public class MainActivity extends ActionBarActivity {
Button b;
TextView t;
String n;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(Button)findViewById(R.id.button);
t=(TextView)findViewById(R.id.textView);
b.setOnClickListener( new View.OnClickListener(){
public void onClick(View v)
{try {
DefaultHttpClient d = new DefaultHttpClient();
HttpPost p = new HttpPost("http://www.palakarora.net16.net/happy.php");
HttpResponse httpResponse = d.execute(p);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
n = reader.readLine();
}
catch(Exception e)
{
n="failed";
}
t.setText(n);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
happy.php是android app调用的网页。该页面打印“yayyyy”。 happy.php
<?
print("yayyyyy");
?>
答案 0 :(得分:2)
所有android异步任务(包括连接)应该在一个单独的线程中进行,并且在所有现代版本中,你被迫在一个单独的线程中建立连接(使用AsyncTask或类似的东西),坏的是,发生这种情况时,未明确显示连接问题,因此请确保在发送请求时执行此操作。希望这有帮助
答案 1 :(得分:0)
答案 2 :(得分:0)
你在本地或服务器上工作是无动于衷的,'httpPost'类需要在AsynClass中工作,因为'httpPost'是异步方法... 我解释了一点here并有3个例子!!
告诉我,如果我帮助你并做好编程!