UploadValuesAsync并获取一些数据

时间:2013-12-14 19:50:15

标签: php vb.net visual-studio webclient

我正在尝试改进我用Visual Basic.net编写的一个项目(LJTD)。首先,我想说明实际代码是什么:

 Dim wc2 As New Net.WebClient
 Dim nvc = Module_NVC.NVC_Create("SomeString123456789")
 Dim downloadString = wc2.UploadValues(New Uri(linkToPHPFile), nvc)

这非常好。它将一些数据上传到服务器并返回一个String。问题是它不是异步并导致用户ping不好会导致应用程序本身出现巨大的峰值。所以它变得无法使用。这就是我尝试启用异步功能的原因:

Dim wc2 As New Net.WebClient
AddHandler wc2.DownloadFileCompleted, AddressOf Download_Completed
Dim nvc = Module_NVC.NVC_Create("SomeString123456789")
Dim downloadString = wc2.UploadValuesAsync(New Uri(linkToPHPFile), nvc)

问题出在最后一行。原因是 UploadValuesAsync 不允许获取像 UploadValues Library

这样的数据

Backgroundinformation

如果您想知道我的php文件是什么样的,请转到:

<?php
include 'inc/db-connect.php';
if (isset($_POST['teamID'])) {
  $teamID = $db->real_escape_string($_POST['teamID']);
} 
$sql="SELECT scaleX,scaleY FROM wardmap WHERE teamID = '$teamID';";
$result = $db->query($sql);
while ($row = $result->fetch_object())
    echo "\r\n$row->scaleX $row->scaleY";
$db->close();
?>

所以我的问题是

如何上传NameValueCollection Async并下载PHP使用echo编写的数据。

如果你知道没有UploadValuesAsync的另一种方式,也欢迎你。请给我一些提示。感谢。

1 个答案:

答案 0 :(得分:0)

在vb-paradise获得帮助。

现在的解决方案:

Dim wc2 As New Net.WebClient AddHandler wc2.UploadValuesCompleted, AddressOf Download_Completed 
Dim nvc = NVCGetWard_Create("SomeString123456789") 
wc2.UploadValuesAsync(New Uri(linkToPHPFile), nvc) 

然后你需要回调:

Private Sub Download_Completed(ByVal sender As Object, ByVal e As UploadValuesCompletedEventArgs) 
Dim Result = Encoding.ASCII.GetString(e.Result) 
End Sub 

很简单