此代码用于通过发布两个数据num,db和获取响应来从php服务器获取详细信息。 公共类MainActivity扩展了Activity {
Button b;
TextView num;
TextView dob;
String db;
String x;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(Button) findViewById(R.id.button1);
num=(TextView) findViewById(R.id.editText1);
dob=(TextView) findViewById(R.id.editText2);
x=(String) num.getText();
db=(String) dob.getText();
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
submit();
}
});
}
submit fn用于将两个值num,db发送到服务器以获得响应。
public String submit(){
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("registerno", x ));
postParameters.add(new BasicNameValuePair("dob", db ));
String response = "";
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://www.pnrinbox.com/premfin.php");
try
{
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null)
{
response += s;
}
Log.d( "After call, response: " , " " + response);
}
catch (Exception e)
{
System.out.println(e.toString());
}
return response;
}
将两个数据项发布到php服务器并获取数据。
答案 0 :(得分:0)
我猜你得到的是NetworkOnMainThreadException。所有网络操作都必须在非UI线程上完成。我建议在android文档中查找AsyncTask类:http://developer.android.com/reference/android/os/AsyncTask.html。
您可能会发现需要将submit()
函数的主体移动到asyncTask的doInBackground()
函数中。
答案 1 :(得分:0)
我认为您必须使用AsyncTask进行网络访问,然后从UI线程调用AsyncTask以返回所需的值。此外,您必须将<uses-permission android:name="android.permission.INTERNET"></uses-permission>
放在manifest.xml文件中的</application>
之后。