【发布时间】:2018-10-07 10:19:42
【问题描述】:
我正在尝试将以前编写的 .net winform 应用程序从 vb 转换为 c#,但在使用网络发送功能时遇到了问题。如何将其转换为 c#?
Public Shared Function Send(p_ipAddress As String, p_action As String, p_page As String, p_body As String, p_filePath As String) As String
Dim objHttp = CreateObject("MSXML2.ServerXMLHTTP")
'objHttp.setTimeouts(1000, 1000, 1000, 1000) '-- Timeout
objHttp.Open(p_action, sUrl, False)
If t_fileContent.Length > 0 Then
objHttp.setRequestHeader("Content-Type", "multipart/form-data; boundary=" & t_multipart_boundary)
Else
t_fileContent.Append(p_body)
objHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
End If
objHttp.Send(t_fileContent.ToString())
If objHttp.Status = 200 Then
Return objHttp.responseText
End If
Return ""
End Function
HTTP 对象是我在翻译成 c# 时遇到的问题。我不知道我是否需要使用 http 客户端、http web 请求,我对 web 调用还很陌生。
编辑我已将代码缩短为我不确定的具体内容,删除了绒毛。
【问题讨论】:
-
我会考虑将其保留在 vb 中,但将代码移动到可以从 c# 引用的库项目中。
-
你只需要
var objHttp = Microsoft.VisualBasic.Interaction.CreateObject("MSXML2.ServerXMLHTTP");吗? -
Microsoft.VisualBasic.dll -
但是有适当的 .NET 类可以处理通过 HTTP 的发送。用这些重写会更好。