У меня есть запрос HTML POST, который мне нужно скопировать в C#Проблемы с MULTIPART/Form-Data в качестве веб-запроса
HTML, это что-то вроде
<FORM action="http://RemoteServerURL" enctype="multipart/form-data" method=POST>
<TEXTAREA id="TextAreaXML" name="xmlmsg" rows="20" cols="100"> </TEXTAREA>
<button type="submit">Send</button>
</form>
текстовое поле ожидает InOut, которая как указано ниже
<?xml version="1.0" encoding="utf-8"?>
<OnlineCheck>
<Header>
<BuyerAccountId>XXXXXX</BuyerAccountId>
<AuthCode>XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</AuthCode>
<Type>STOCK</Type>
</Header>
<Item line="1">
<ManufacturerItemIdentifier />
<DistributorItemIdentifier>3109750</DistributorItemIdentifier>
<Quantity>7</Quantity>
</Item>
</OnlineCheck>
Эта часть работает нормально.
Теперь я попытался воспроизвести его в C#, как показано ниже.
WebRequest req = WebRequest.Create("http://RemoteServerURL");
string xmlmsg = "<?xml version=" + '"' + "1.0" + '"' + " encoding==" + '"' + "utf-8" + '"' + "?><OnlineCheck><Header><BuyerAccountId>XXXXXX</BuyerAccountId><AuthCode>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX</AuthCode><Type>STOCK</Type></Header><Item line=" + '"' + "1" + '"' + "><ManufacturerItemIdentifier /><DistributorItemIdentifier>3109750</DistributorItemIdentifier><Quantity>7</Quantity></Item></OnlineCheck>";
byte[] send = Encoding.Default.GetBytes(xmlmsg);
req.Method = "POST";
req.ContentType = "multipart/form-data";
req.ContentLength = send.Length;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string returnvalue = sr.ReadToEnd();
Это не удается, и я получаю сообщение
"Запрос был отклонен, поскольку не многочастная граница не была найдена XML запроса"
. Поэтому я знаю, что запрос на сервер работает. Но вход или что-то не так. Пожалуйста, помогите
Да, сообщение ясно. но какое изменение я могу внести в код, чтобы исправить это? – MarsOne
req.ContentType = "multipart/form-data"; Измените это на req.ContentType = "multipart/mixed; border = \" border \ "" –