私はVB6でうまく機能するコードを持っています。しかし、xml ファイルを utf-8 エンコード (キリル文字を含む) で投稿する必要があります。コードを VB.NET に変換したいのですが、結果はエラー 500 - 内部サーバー エラーです。
元のvb6コード(キリル文字のウィッチアウトに成功):
Dim o As New xmlHttp
xmlContent() = fs.GetFileContent(Replace(Me.txtOutputFileName.Text, fs.GetFileNameByPath(Me.txtOutputFileName.Text), "") & xmlFileNames(i))
xmlString = MFunctions.GetString(xmlContent())
o.Open "POST", server, False, EE_XML_EXCHANGE_ID, EE_XML_EXCHANGE_PWD
o.setRequestHeader "Content-Type", "text/xml" ' "text/xml;charset=utf-8"
o.setRequestHeader "SOAPAction", ""
o.send xmlString
Me.txtResponseHeaders = o.getAllResponseHeaders
Me.txtResponse = o.responseText
VB.NET コード (エラー 500 を返す - 内部サーバー エラー):
Dim xdoc As XDocument = XDocument.Load("z:\Operations\RU\_TEST\xml\send\RUWP121001_01_05_01.xml")
Dim request As WebRequest = WebRequest.Create("http://217.159.234.77:8080/epmx/services/messagesService")
request.Method = "POST"
Dim postData As String = xdoc.ToString
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
request.ContentType = "text/xml"
request.ContentLength = byteArray.Length
request.Credentials = New System.Net.NetworkCredential(EE_XML_EXCHANGE_ID,EE_XML_EXCHANGE_PWD)
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()
Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
Console.WriteLine(responseFromServer)
reader.Close()
dataStream.Close()
response.Close()
何が問題なのか分かりますか?
ありがとうございました