1

私は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()

何が問題なのか分かりますか?

ありがとうございました

4

0 に答える 0