[問題] Android和php連接問題
小的我參考:http://goo.gl/ti5Yg網站範例做程式
完成後沒有顯示錯誤訊息
模擬器的Toast也有正確顯示出輸入的訊息,但網頁顯示不出結果
以下是我的程式碼:
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private EditText txtMessage;
private Button sendBtn;
private String uriAPI = "http://localhost/httpPostTest.php";
protected static final int REFRESH_DATA = 0x00000001;
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg)
{
switch(msg.what)
{
case REFRESH_DATA:
String result = null;
if(msg.obj instanceof String)
result = (String)msg.obj;
if(result != null)
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtMessage = (EditText)findViewById(R.id.txt_message);
sendBtn = (Button)findViewById(R.id.send_btn);
if (sendBtn != null)
{
sendBtn.setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
if(v ==sendBtn){
if (txtMessage!=null)
{
String msg=txtMessage.getEditableText().toString();
Thread t = new Thread(new sendPostRunnable(msg));
t.start();
}
}
}
private String sendPostDataToInternet(String strTxt)
{
HttpPost httpRequest = new HttpPost(uriAPI);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("data",strTxt));
try
{
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
if (httpResponse.getStatusLine().getStatusCode() == 200)
{
String strResult = EntityUtils.toString(httpResponse.getEntity());
return strResult;
}}
catch (Exception e)
{
Toast.makeText(this, e.getMessage().toString(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
return null;
}
class sendPostRunnable implements Runnable{
String strTxt = null;
public sendPostRunnable(String strTxt)
{
this.strTxt = strTxt;
}
@Override
public void run() {
String result = sendPostDataToInternet(strTxt);
mHandler.obtainMessage(REFRESH_DATA,result).sendToTarget();
}
}
}
這是PHP的部分:
<?php
header("Content-Type:text/html;charset=utf-8");
$data=$_POST['data'];
echo "data=".$data;
?> 還煩請各位大大指點
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.80.193
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1440046898.A.923.html
→
08/20 13:26, , 1F
08/20 13:26, 1F
→
08/20 13:27, , 2F
08/20 13:27, 2F
→
08/21 04:43, , 3F
08/21 04:43, 3F
→
08/21 04:43, , 4F
08/21 04:43, 4F
推
08/21 11:04, , 5F
08/21 11:04, 5F
→
08/21 16:55, , 6F
08/21 16:55, 6F