【问题标题】:Converting python code to vb.net将python代码转换为vb.net
【发布时间】:2018-09-16 05:27:15
【问题描述】:

我有一个 python 代码。我需要它的 vb.net 等价物。

提前致谢。

payload2 = {"auth_token": "YOUR_AUTH_TOKEN", "status":"green", "data-title1":"index", "data-title2":"machine1", "data-title3":"package10", "data-title4":"current", "data-title5":"tmp"}
r=requests.post("http://localhost:3030/widgets/hot21",data=json.dumps(payload2))

额外信息 代码在“UiPath社区版”中调用

最后的代码(感谢 JussiV)是

Imports System.Text
Dim payload2 As New Dictionary(Of String, String)
payload2.Add("auth_token", "YOUR_AUTH_TOKEN")
payload2.Add("status", "green")
payload2.Add("data-title1", "index")
payload2.Add("data-title2", "machine1")
payload2.Add("data-title3", "package10")
payload2.Add("data-title4", "current")
payload2.Add("data-title5", "tmp")
Dim params As String = JsonConvert.SerializeObject(payload2, Formatting.None)
Dim Uri As New Uri(String.Format("http://10.10.115.99:3030/widgets/hot21"))
Dim webClient As New WebClient()
Dim resByte As Byte()
Dim resString As String
Dim reqString() As Byte
webClient.Headers("content-type") = "application/json"
Dim senddata As Object = JsonConvert.SerializeObject(New With {Key .param = params}).ToString()
reqString = Encoding.Default.GetBytes(senddata)
resByte = webClient.UploadData(Uri, "post", reqString)
resString = Encoding.Default.GetString(resByte)

最后的错误消息是

webservice has thrown an exception
Source: Invoke code
Message: Error compiling code
error BC30035: syntax error. At line 1
error BC30561: 'Formatting' is ambiguous, imported from the namespaces or types 'Newtonsoft.Json, System.Xml'. At line 10
error BC30002: Type 'WebClient' is not defined. At line 12
error BC30451: 'Encoding' is not declared. It may be inaccessible due to its protection level. At line 18
error BC30451: 'Encoding' is not declared. It may be inaccessible due to its protection level. At line 20
Exception Type: ArgumentException

【问题讨论】:

  • 你尝试过吗?向我们展示您的尝试。
  • Dim payload As String = "{""auth_token"": ""YOUR_AUTH_TOKEN"", ""status"":""green"", ""data-title1"":""indeks "", ""data-title2"":""env"", ""data-title3"":""pakno"", ""data-title4"":""cur"", ""data-title5 "":""tmp""}" Dim r As String = "requests.post(""localhost:3030/widgets/hot"",data=json.dumps(payload))"

标签: python json vb.net rest uipath


【解决方案1】:

在 VB.net 中创建字典https://www.dotnetperls.com/dictionary-vbnet:

Dim payload2 As New Dictionary(Of String, String>
payload2.add("auth_token", "<token>")
....

然后post the dictionary as JSON:

Dim params As String = JsonConvert.SerializeObject(payload2, Formatting.None)
Dim Uri As New Uri(String.Format("http://localhost:3030/widgets/hot"+indeks))
Dim webClient As New WebClient()
Dim resByte As Byte()
Dim resString As String
Dim reqString() As Byte
webClient.Headers("content-type") = "application/json"
Dim senddata As Object = JsonConvert.SerializeObject(New With {Key .param = params}).ToString()
reqString = Encoding.Default.GetBytes(senddata)
resByte = webClient.UploadData(Uri, "post", reqString)
resString = Encoding.Default.GetString(resByte)

编辑:

您至少缺少具有 WebClient 类的 System.Net 的导入。我不确定您在哪里/如何导入 Newtonsoft.Json,因为我在您的导入中没有看到它,而是基于它在某处导入的错误。

对于不明确的导入,请参阅this answer 以解决不明确的导入。

【讨论】:

  • 异常Message: Error compiling code&lt;br/&gt; error BC30561: 'Newtonsoft.Json, System.Xml' 'DataSet' is ambiguous, imported from the namespaces or types 'Formatting'. At line 5'&lt;br/&gt; error BC30002: Type 'WebClient' is not defined. At line 7&lt;br/&gt; error BC30451: 'parameters' is not declared. It may be inaccessible due to its protection level. At line 12&lt;br/&gt; error BC30451: 'Encoding' is not declared. It may be inaccessible due to its protection level. At line 13 &lt;br/&gt; error BC30451: 'Encoding' is not declared. It may be inaccessible due to its protection level. At line 15
  • 我的错,Dim senddata ... 行上的params 参数名称有一个错误,我用parameters 而不是params,在答案中修复了它
  • 谢谢JussiV,但其他错误仍在发生
  • 会出现什么错误?您是否添加了所需的导入?您是否修正了我在payload2 声明中似乎仍然存在的错字?你需要表现出一些努力,不是没有人会为你做的。
  • 我从您的代码中提取了一行,问题已解决。谢谢。
猜你喜欢
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 2010-09-21
  • 2016-12-17
相关资源
最近更新 更多