2016-12-07 142 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