2016-12-07 104 views
1
private void timer1_Tick(object sender, System.EventArgs e) 
    { 
     int iIdx; 
     int[] iData; 
     bool[] bData; 


     if (m_bRegister) // Read registers (4X references) 
     { 
      // read register (4X) data from slave 
      if (adamTCP.Modbus().ReadHoldingRegs(m_iStart, m_iLength, out iData)) 
      { 
       m_iCount++; // increment the reading counter 
       txtStatus.Text = "Read registers " + m_iCount.ToString() + " times..."; 
       // update ListView 

       label1.Text = HttpGet("http://127.0.0.1/misc/api1.php?value0=" + iData[0].ToString()); 
       label2.Text = HttpGet("http://127.0.0.1/misc/api1.php?value1=" + iData[1].ToString()); 
       label3.Text = HttpGet("http://127.0.0.1/misc/api1.php?value2=" + iData[2].ToString()); 
       label4.Text = HttpGet("http://127.0.0.1/misc/api1.php?value3=" + iData[3].ToString()); 
       label5.Text = HttpGet("http://127.0.0.1/misc/api1.php?value4=" + iData[4].ToString()); 

       for (iIdx = 0; iIdx < m_iLength; iIdx++) 
       { 
        listViewModbusCur.Items[iIdx].SubItems[2].Text = iData[iIdx].ToString();   // show value in decimal 
        listViewModbusCur.Items[iIdx].SubItems[3].Text = iData[iIdx].ToString("X04"); // show value in hexdecimal 

       } 

如何使用httpget方法发送数组?上面的代码显示我正在逐一发送数据。我需要将它发送到数组中,并将它恢复到api,php中,以便我可以将它插入数据库中的一行中。目前,它是1行的1个数据。如何在http中发送数组请求请求

+1

将数组转换为json字符串然后发送它 – mahethekiller

+0

介绍一些例子。我是小白。只要学习编程。之前只进行简单编程。 –

回答

0

你应该通过成为又一个查询字符串,EX 'value0':值[]

所以网址将成为

http://127.0.0.1/misc/api1.php?value[]="+ iData[0].ToString()"&value[]="+ iData[1].ToString() and etc what you want to send it " 

,或者你应该使用http_build_query的参数数组数据

你显示的代码是php? api也许php但代码风格更像.NET c# 纠正我,如果我错了。

//更新响应

string[] param = new string[(how many your counter param)]; 
param [0] = "test0"; 
param [1] = "test1"; 
param [2] = "test2"; 

in my example i give you 3 
string sParams = JsonConvert.SerializeObject(param) ; 
HttpGet("http://127.0.0.1/misc/api1.php?value=" + sParams); 
+0

它是.NET C#。该API是在PHP中。我尝试着写代码给你的例子,但是有一个错误。 “仅分配,呼叫,数据....”错误。 –

+0

string [] ss = new string [3]; ss [0] =“test0”; ss [1] =“test1”; ss [2] =“test2”; string sParams = JsonConvert.SerializeObject(ss); Uri uriCall = new Uri(“http:// localhost:56208/api/CreateGame /?opps =”+ sParams); – Evinn

+0

HttpGet(“http://127.0.0.1/misc/api1.php?value0=+ iData [0] .ToString()&value1 = + iData [1] .ToString()&value2 = + iData [2] .ToString( )&value3 = + iData [3] .ToString()value4 = + iData [4] .ToString()“); 它是这样写的吗? –

0

这里是一个数组转换成JSON在PHP

$arr=array(
    "varl1"=>1, 
    "varl2"=>"example", 
    "varl3"=>3, 
); 

$json_arr=json_encode($arr); 

现在,您可以发送$json_arr 一个例子,那么你就可以使用其解码json_decode()

+0

这是写在api.php或c#编码? –

+0

这是php代码,但是如果你需要使用c#发送数组,那么也有类似的技巧 – mahethekiller