2011年12月9日 星期五

Android Http 使用 POST

原本利用 php connector 想直接連接資料庫但是試不出來
只好乖乖的使用  http

Android的部分
//=====================================

package lm.huang.tw;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class HttpActivity extends Activity {
    String url="你的網址";
EditText et;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        et=(EditText)findViewById(R.id.editText1);
    }
 
 
    public void btnclick(View v)
    {
    //Toast.makeText(getApplication(), "into", 0).show();
    SendPostDataToWebServer(et.getText().toString());
   
    }
 
    private String SendPostDataToWebServer(String Str)
    {
    HttpPost httpRequest=new HttpPost(url);
    List<NameValuePair> params=new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("data",Str));
    try {
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse httpResponse =new DefaultHttpClient().execute(httpRequest);


if (httpResponse.getStatusLine().getStatusCode()==200)
{
String setResult= EntityUtils.toString(httpResponse.getEntity());
Toast.makeText(getApplication(), setResult, 0).show();
return setResult ;
}
    } catch (UnsupportedEncodingException e) {
    Toast.makeText(getApplication(), ""+e.toString(), 0).show();
e.printStackTrace();
} catch (ClientProtocolException e) {
Toast.makeText(getApplication(), ""+e.toString(), 0).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(getApplication(), ""+e.toString(), 0).show();
e.printStackTrace();
}
return null;
 
 
 
    }
 
}


在AndroidManifest.xml要加入

 <uses-permission android:name="android.permission.INTERNET"/>

//=====================================
在PHP的檔案內容
//=====================================

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MyAndroid Title</title>
</head>
<body>
<?php

$data=$_POST['data'];
echo "date=".$data;

?>
</body>
</html>

//=====================================
執行結果





沒有留言:

張貼留言