如何发送数据到php服务器和使用POST和httpurl连接在php服务器接收数据
我正在制作一个应用程序,并在该应用程序中,我需要发送数据到php服务器和接收数据在php服务器,反之亦然。我无法将数据从android应用程序发送到php服务器?你能告诉我该怎么做吗?
这是我发送数据到服务器的代码。
如何发送数据到php服务器和使用POST和httpurl连接在php服务器接收数据
public class EventServiceHandler
{
String data;
DoSomething d = new DoSomething();
public EventServiceHandler() {
// TODO Auto-generated constructor stub
d.execute();
}
public void getObject()
{
String s = "http://www.example.com/thisisthis.php";
try {
URL url = new URL(s);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setConnectTimeout(100000);
connection.setReadTimeout(100000);
connection.connect();
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
response=connection.getResponseCode();
String name="sateesh";
String testing=URLEncoder.encode("name", "utf-8")
+ "=" + URLEncoder.encode(name, "utf-8");
out.write(testing);
}
catch (MalformedURLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class DoSomething extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params)
{
// TODO Auto-generated method stub
getObject();
return null;
}
}
}
这是PHP服务器上的代码用于在服务器上接收数据。
<?php
if($_POST)
{
$name = urldecode($_POST['name']);
echo $name;
error_log($name,0);
echo " ok";
}
else if(is_null($_POST) OR empty($_POST))
{
error_log("empty or null",0);
echo "in else if";
}
else
{
echo "<br>";
echo "in else";
}
echo "just";
?>
我知道我在接收数据时,我如何确保正在接收的数据怎么办。
我是新来的PHP,并从未在android中使用过http类。
在此先感谢。
-
复制并粘贴JSONParser.java文件到您的src文件夹
下面写在你的Android项目的活动代码。
公共类CreateDailyReports延伸活动实现OnClickListener {
EditText edRTitle,edRDesc;
Button btnCreateReport;
String userId,cmid;
private ProgressDialog pdialog;
// Creating JSON Parser object
JSONParser jsonParser = new JSONParser();
int success=0;
private static String url_create_daily_reports = "";
private static String url_send_message = "";
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_daily_reports);
initializeControls();
btnCreateReport.setOnClickListener(this);
}
public void initializeControls(){
edRTitle = (EditText)findViewById(R.id.editTextOfReportTitle);
edRDesc = (EditText)findViewById(R.id.editTextOfReportDescription);
btnCreateReport = (Button)findViewById(R.id.buttonOfCreateReport);
}
public class CreateDReports extends AsyncTask<String,String,String>
{
@Override
protected void onPreExecute()
{
// TODO Auto-generated method stub
super.onPreExecute();
pdialog = new ProgressDialog(CreateDailyReports.this);
pdialog.setMessage("Wait... ");
pdialog.setProgressStyle(android.R.style.Widget_ProgressBar_Small);
pdialog.setIndeterminate(false);
pdialog.setCancelable(false);
pdialog.show();
}
@Override
protected String doInBackground(String... args)
{
String empid = userId;
String sRtitle = edRTitle.getText().toString();
String sRdesc = edRDesc.getText().toString();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("eid",empid));
params.add(new BasicNameValuePair("rtitle",sRtitle));
params.add(new BasicNameValuePair("rdesc",sRdesc));
params.add(new BasicNameValuePair("cid",cmid));
// getting JSON string from URL
JSONObject json = jsonParser.makeHttpRequest(url_create_daily_reports, "POST", params);
//Log.i("login", json.toString());
try
{
// Checking for SUCCESS TAG
success = json.getInt("success");
}
catch (JSONException e)
{
// TODO: handle exception
e.printStackTrace();
}
return null;
} // doinbackground ends
@Override
protected void onPostExecute(String file_url)
{
pdialog.dismiss();
if(success==1){
Toast myToast = Toast.makeText(CreateDailyReports.this, "Your Report has been Created", 10);
myToast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
myToast.show();
new SendDailyReports().execute();
}
else
{
Toast myToast = Toast.makeText(CreateDailyReports.this, "Your Reprot has not been Created", 10);
myToast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
myToast.show();
}
}
} // update status of product auction over
@Override
public void onClick(View v) {
int id = v.getId();
if(id==btnCreateReport.getId()){
new CreateDReports().execute();
}
}
} 3. PHP脚本
<?php
$值1 = $ _REQUEST [ “rtitle”]; $ value2 = $ _REQUEST [“rdesc”];
// connect to your database
$result = mysql_query(" insert into table(field1,field2) values('$value1','$value2')");
if($result == 1)
{
// successfully inserted
$response["success"] = 1;
$response["message"] = "Product successfully created.";
// echoing JSON response
echo json_encode($response);
}
else
{
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
?>
我在php上的代码是正确的吗? – Sateesh 2014-10-20 09:27:30
检查我的文章,我已编辑,它会插入值到您的表,然后将响应发送到json – 2014-10-20 09:31:10
和不,你的php代码是不正确的,因为它应该发送json到你的android应用程序。 – 2014-10-20 09:32:30
等待你的答复。提前致谢。 – Sateesh 2014-10-20 09:26:13