C# 使用WebRequest使用C与php通信#

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

这是一个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.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,我不确定我是否正确使用了它