C# 使用WebRequest使用C与php通信#
这是一个XamarinAndroid项目,我想让它尽可能简单,所以我遵循一个关于如何使用webrequest和php将数据插入mysql数据库的教程 这是我的活动,我通过编辑文本检索输入C# 使用WebRequest使用C与php通信#,c#,php,api,xamarin.android,webrequest,C#,Php,Api,Xamarin.android,Webrequest,这是一个XamarinAndroid项目,我想让它尽可能简单,所以我遵循一个关于如何使用webrequest和php将数据插入mysql数据库的教程 这是我的活动,我通过编辑文本检索输入 using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Net; using System.Text; using Android
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Net;
using System.Text;
using Android.App;
using Android.Content;
using Android.Graphics;
using Android.OS;
using Android.Runtime;
using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Views;
using Android.Widget;
namespace CPDEP1
{
[Activity(Label = "Formulaire d'enregistrement", Theme="@style/Theme.AppCompat.Light")]
public class FormActivity : AppCompatActivity
{
CoordinatorLayout FrootLayout;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
FrootLayout = FindViewById<CoordinatorLayout>(Resource.Id.FcoordLayout);
SetContentView(Resource.Layout.Form);
var inputNom = FindViewById<EditText>(Resource.Id.nom);
var inputPrenom = FindViewById<EditText>(Resource.Id.pren);
var inputTel = FindViewById<EditText>(Resource.Id.tel);
var inputID = FindViewById<EditText>(Resource.Id.iden);
var inputDep = FindViewById<EditText>(Resource.Id.dep);
var inputCom = FindViewById<EditText>(Resource.Id.com);
var savebtn = FindViewById<Button>(Resource.Id.save);
var inputAdresse = FindViewById<EditText>(Resource.Id.adresse);
var inputCourriel = FindViewById<EditText>(Resource.Id.email);
savebtn.Click += delegate
{
string nom = inputNom.Text;
string prenom = inputPrenom.Text;
string tel = inputTel.Text;
string id = inputID.Text;
string dep = inputDep.Text;
string com = inputCom.Text;
string adress = inputAdresse.Text;
string courriel = inputCourriel.Text;
//REceiving value from an activity
//string user = Intent.GetStringExtra("User");
//string pass = Intent.GetStringExtra("Password");
if (nom == null || prenom == null || tel == null || id == null || dep == null || com == null || adress == null || courriel == null)
{
////////////SSNACKBAR///////////
Snackbar snack = Snackbar.Make(FrootLayout, "Empty Field", Snackbar.LengthShort)
.SetAction("", (view) =>
{
Toast.MakeText(this, "OK", ToastLength.Short).Show();
}).SetActionTextColor(Color.ParseColor("#000000"));
View SnackView = snack.View;
SnackView.SetBackgroundColor(Color.ParseColor("#E72222"));
snack.Show();
}
else
{
WebClient client = new WebClient();
Uri uri = new Uri("http://localhost/CRUDSERVICE/CreateContact.php");
NameValueCollection parameters = new NameValueCollection();
parameters.Add("Nom", nom);
parameters.Add("Prenom", prenom);
parameters.Add("Tel", tel);
parameters.Add("Dep", dep);
parameters.Add("Com", com);
parameters.Add("Adress", adress);
parameters.Add("Courriel", courriel);
client.UploadValuesAsync(uri, parameters);
}
};
}
// }
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.Specialized;
使用System.Linq;
Net系统;
使用系统文本;
使用Android.App;
使用Android.Content;
使用Android.Graphics;
使用Android.OS;
使用Android.Runtime;
使用Android.Support.Design.Widget;
使用Android.Support.V7.App;
使用Android.Views;
使用Android.Widget;
命名空间CPDEP1
{
[活动(Label=“Formulaire d'enregistrement”,Theme=“@style/Theme.AppCompat.Light”)]
公共类形式活动:AppCompatActivity
{
协调平面布置;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
FrootLayout=findviewbyd(Resource.Id.FcoordLayout);
SetContentView(Resource.Layout.Form);
var inputNom=findviewbyd(Resource.Id.nom);
var inputPrenom=findviewbyd(Resource.Id.pren);
var inputTel=findviewbyd(Resource.Id.tel);
var inputID=findviewbyd(Resource.Id.iden);
var-inputDep=findviewbyd(Resource.Id.dep);
var inputCom=findviewbyd(Resource.Id.com);
var savebtn=findviewbyd(Resource.Id.save);
var-inputAdresse=findviewbyd(Resource.Id.address);
var inputCourriel=findviewbyd(Resource.Id.email);
savebtn.Click+=委托
{
字符串名称=inputNom.Text;
字符串prenom=inputPrenom.Text;
字符串tel=inputTel.Text;
字符串id=inputID.Text;
string dep=inputDep.Text;
字符串com=inputCom.Text;
字符串地址=InputAddresse.Text;
string courriel=inputCourriel.Text;
//从活动中获得价值
//string user=Intent.GetStringExtra(“用户”);
//string pass=Intent.GetStringExtra(“密码”);
如果(nom==null | | prenom==null | | | tel==null | | id==null | | dep==null | | com==null | | address==null | | courriel==null)
{
////////////SSNACKBAR///////////
Snackbar snack=Snackbar.Make(FrootLayout,“空字段”,Snackbar.LengthShort)
.SetAction(“,(视图)=>
{
Toast.MakeText(这个“OK”,ToastLength.Short).Show();
}).SetActionTextColor(Color.ParseColor(#000000”);
视图SnackView=snack.View;
SnackView.SetBackgroundColor(Color.ParseColor(“#E72222”);
Show();
}
其他的
{
WebClient客户端=新的WebClient();
Uri=新的Uri(“http://localhost/CRUDSERVICE/CreateContact.php");
NameValueCollection参数=新的NameValueCollection();
参数。添加(“Nom”,Nom);
参数。添加(“Prenom”,Prenom);
参数。添加(“电话”,电话);
参数。添加(“Dep”,Dep);
添加(“Com”,Com);
参数。添加(“地址”,地址);
添加(“Courriel”,Courriel);
UploadValuesAsync(uri,参数);
}
};
}
// }
}
}
还有PHP脚本
一个用于连接
<?php
class ConnectionInfo
{
public $mServerName;
public $mConnectionInfo;
public $conn;
public function GetConnection()
{
$this->mServerName = 'localhost';
$this->mConnectionInfo = array("Database"=>"formation", "UID"=>"root", "PWD"=>"cpdep");
$this->conn = sqlsrv_connect($this->mServerName,$this->mConnectionInfo);
return $this->conn;
}
}
?>
另一个是积垢
<?php
require_once(dirname(__FILE__).'/ConnectionInfo.php');
if (isset($_POST['Nom']) && isset($_POST['Prenom']) && isset($_POST['Tel']) && isset($_POST['Dep']) && isset($_POST['Com']) && isset($_POST['Adress']) && isset($_POST['Courriel']))
{
//Get the POST variables
$mNom = $_POST['Nom'];
$mPrenom = $_POST['Prenom'];
$mTel = $_POST['Tel'];
$mDep = $_POST['Dep'];
$mCom = $_POST['Com'];
$mAdress = $_POST['Adress'];
$mCourriel = $_POST['Courriel'];
//Set up our connection
$connectionInfo = new ConnectionInfo();
$connectionInfo->GetConnection();
if (!$connectionInfo->conn)
{
//Connection failed
echo 'No Connection';
}
else
{
//Insert new contact into database
$query = 'INSERT INTO thinktank (nom, prenom, telephone, departement, commune, adresse, courriel) VALUES (?, ?, ?, ?, ?, ?, ?)';
$parameters = array($mNom, $mPrenom, $mTel, $mDep, $mCom, $mAdress, $mCourriel);
//Execute query
$stmt = sqlsrv_query($connectionInfo->conn, $query, $parameters);
if (!$stmt)
{ //The query failed
echo 'Query Failed';
}
else
{
//The query succeeded, now echo back the new contact ID
$query = "SELECT IDENT_CURRENT('Contacts') AS NewID";
$stmt = sqlsrv_query($connectionInfo->conn, $query);
$row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC);
echo $row['NewID'];
}
}
}
?>
一个简单的解决方案是将php从POST
更改为GET
只需将$\u POST
替换为$\u GET
在那之后,如果你想调用你的URL,就像这个例子一样
http://localhost/CRUDSERVICE/CreateContact.php?Nom=Doe&Prenom=Joe&Tel=025545&Dep=Security&Com=somecom&Adress=street431&Courriel=youremail@gmail.com
String prenom="john";
String nom="doe";
String tel="025545";
String dep="security";
String com="somecom";
String adress="street431";
String courriel="youremail@gmail.com";
// let's build our link
String link="http://localhost/CRUDSERVICE/CreateContact.php?Nom="+nom+"&Prenom="+prenom+"&Tel="+tel+"&Dep="+dep+"&Com="+com+"&Adress+"+adress+"&Courriel="+courriel;
WebClient wc=new WebClient(); // don't forget using System.Net;
String res=wc.DownloadString(link); // res is data printed by echo
if(res.equals("No Connection ") || res.equals("Query Failed"))
{
// something went wrong
}
else
{
}
您的问题是什么,您有两种服务器端语言。如果其中一方提出了一个有效的web请求,另一方应该能够接受。这就是问题所在,我不知道我的问题出在哪里,我只确定我的php脚本没有错误,我还不熟悉WebRequest,我不确定我是否正确使用了它