0

現在、xml ファイルを Web サービスに投稿しようとしています。

これは私の現在のコードです

 var tempFileLocation = @"c:\Temp\";             

            XmlDocument xdoc = new XmlDocument();
            xdoc.LoadXml(item);
            xdoc.Save(tempFileLocation + "\\pcf.xml");

            var url = "https://Siteaddress/xml.aspx";

            UTF8Encoding encoding = new UTF8Encoding();
            byte[] byte1 = encoding.GetBytes(xdoc.InnerXml);
            HttpWebRequest submissionRequest = (HttpWebRequest)WebRequest.Create(url);
            submissionRequest.KeepAlive = true;
            submissionRequest.Method = "POST";
            submissionRequest.ContentType = "multipart/form-data";
            submissionRequest.ContentLength = byte1.Length;
            submissionRequest.Timeout = 10000;
            submissionRequest.Headers.Add("Accept-Encoding", "gzip,deflate"); 

            Stream requestStream = submissionRequest.GetRequestStream();
            requestStream.Write(byte1, 0, byte1.Length);
            requestStream.Close();

            XmlDocument responseXMLDocument = new XmlDocument();

            HttpWebResponse submissionAcknowledgement = (HttpWebResponse)submissionRequest.GetResponse();

            if (submissionAcknowledgement.StatusCode == HttpStatusCode.OK)
            {
                responseXMLDocument.Load(submissionAcknowledgement.GetResponseStream());

            }

次に、次のメッセージを受け取ります。

不正な Request.Form[pcfxml] - これは POST として添付されているはずです

xml ファイルを添付ファイルとして投稿するにはどうすればよいですか?

4

2 に答える 2

0

境界がないようです。すべてのマルチパート アップロードの境界を設定する必要があります...

boundary = GetBoundary();

request.ContentType = "multipart/form-data; boundary=" + boundary;

境界は以下のようになります。要求ストリームにバイトを書き込むときはいつでも、境界について言及していることを確認してください。

private static string GetBoundary()
{
    return "--------------------" + DateTime.Now.Ticks.ToString("x");
}
于 2013-07-23T09:33:12.773 に答える