当前位置: 代码迷 >> C# >> C#传递string参数给远程php服务的有关问题
  详细解决方案

C#传递string参数给远程php服务的有关问题

热度:45   发布时间:2016-05-05 05:05:53.0
C#传递string参数给远程php服务的问题
各位大神,帮帮忙吧~,刚刚接触php和JavaScript,额折腾了一下午,实在找不到解决方法。。。。。。

我们的本意是想在html页面上实现上传EXCEL文件内容到服务器的数据库。客户端页面是php + JavaScript,服务器的服务文件也是.php后缀,在网上查了资料,说在客户端用js实现上传限制太多,所以额老师说让另外用C#写个程序,单独实现Excel文件上传功能,但是是把数据提交给远程的服务来执行往数据库中的存储过程。

所以问题来了。。。

EXcel中的文件内容已经能够读出,那怎么往远程服务传啊?,,看了一些代码,都类似于下面这种

byte[] data = Encoding.UTF8.GetBytes(values);

            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/wf/wfServices/jo_EImaintenance/SavePurchaseList.php");
            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;

            Stream myStream = myRequest.GetRequestStream();
            myStream.Write(data,0,data.Length);
            myStream.Close();

            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            StreamReader myReader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
            string myResult = myReader.ReadToEnd();
            myReader.Close();


额这个“values”参数还是个二维数组,这些代码的意思是把参数转换成byte[]格式进行传输吗?
如果是的话,那我在远程PHP文件中怎么取出其中的各个参数呢????
         ps。我目前接触的后台服务处理方式大致都是下面这样的(额觉得主要就是这个values的定义了吖
       

public static function savePurchaseList($db, $values)
    {
        //initialize params
        $params = array();

$sqlAdd="INSERT INTO list_purchase (inputTime, projectNo, belongComponent
,designNo,designName,unit
,designQuantity,techDemand,brandDemand
,vendor,leadTime,checkResult) VALUES";

if($values->resultCount>0)
{
for($i=0;$i<$values->resultCount;$i++)
{
$sqlAdd==$sqlAdd."('".now()
."('".$values->project_code
."','".$values->resultValue[i][0]
."','".$values->resultValue[i][1]
."','".$values->resultValue[i][2]
."','".$values->resultValue[i][3]
."','".$values->resultValue[i][4]
."','".$values->resultValue[i][5]
."','".$values->resultValue[i][6]
."','".$values->resultValue[i][7]
."','".$values->resultValue[i][8]
."','未检')";
if($i==$values->resultCount-1)
{
$sqlAdd=$sqlAdd.";";
}
else
{
$sqlAdd=$sqlAdd.",";
}

}
}
       

如果还有别的方式,可以清楚明白的实现各个参数单独传输的话,麻烦告知一下。。。。。。
总之,我已凌乱~~~
------解决思路----------------------
byte 是流, 传参要写在 url 里面 一起传过去   url=url?参数1&参数2
------解决思路----------------------
传送文件应该这样写
new WebClient().UploadFile(url, filePathAndName);
  相关解决方案