2013-06-22 117 views
4

我在Visual Studio中創建的應用程序從用戶PC獲取其數據,當前將其存儲在文本文件中,將其上傳到服務器,這就是我如何獲取數據。我想知道是否有辦法讓它發送相同的數據而不使用文本文件,但某種TCP連接可能直接進入使用PHP的MySQL服務器?這將如何完成?如何將數據從vb.net應用程序發送到Web服務器?

回答

3

你可以寫一個簡單的PHP 網絡服務, 「uploaddata.php」:

<?php 
    if (isset($_POST["data"])) 
    { 
     echo("Saved these data: " . $_POST["data"]); 
    } 
    else 
    { 
     echo "ERROR: No data!"; 
    } 
?> 

並採用WebClient使用它從你的VB.Net

Dim wc As New WebClient 
wc.Headers("content-type") = "application/x-www-form-urlencoded" 
Dim response As String = wc.UploadString("http://localhost/uploaddata.php", "data=123" & Environment.NewLine & "456" & Environment.NewLine & "789") 
MessageBox.Show(response) 

結果:

Saved these data: 123 
456 
789 
+0

這似乎在localhost(harddrive)上正常工作,但當它嘗試上傳到服務器時,它會運行錯誤。 (Web客戶端請求期間發生異常,不能爲不寫入數據的操作設置Content-Length或Chunked編碼。) – user2502784

+0

也許服務器正在向客戶端發送**重定向**。你可以用像** Fiddler **(http://fiddler2.com/)這樣的HTTP調試器來檢查。 – Pragmateek

+0

我檢查使用Fiddler和vb訪問文件而不是發佈數據, 如果代碼是 回波 '測試' 如果(isset($ _ POST [ '數據'])){ 回聲$ _POST [ '數據']; } 它只是輸出「測試」甚至vb發​​布$ _POST ['數據'] 「 – user2502784

0

尋找類似問題的解決方案,我發現Pragmateek的建議很好。但是,我使用了一個變量WebBrowser,並調用了函數Navigate作爲參數傳遞URL,並在我的數據庫(託管在Web服務器上)更新數據。

這就是我的意思

Dim br As New WebBrowser 
br.Navigate("http://yourwebsite/your-php-script.php?your_variable=" + the_data_you_want_to_send) 

這是迄今爲止對我工作的好..祝你好運!

+0

但你應該檢查Webserver的響應。導航可能會失敗。所以,實用主義方法更好更安全。 – etalon11

相關問題