У меня возникла проблема при публикации XML-данных с помощью HttpWebRequest.На самом деле я хочу опубликовать переменные формы 3
2 из них для учетных данных, а третья - для данных XML для API. API будет проверять подлинность и обрабатывать данные XML, а в случае ошибки не вернетнайдено.
Вот что говорится в документации.
Данные будут переданы на шлюз через сообщение HTTPS FORM, а после успешного получения сообщения будет возвращено строковое значение «success».данные.Всего будут опубликованы три переменные FORM, две из которых будут содержать учетные данные, а третья будет содержать данные HR-XML.Строковое значение «error» будет возвращено, если публикация по какой-либо причине завершится неудачно.
Поля формы.
Вот то, что я кодировал ..
string strId = "123";
string strName = "test";
StreamReader sr2 = File.OpenText(Server.MapPath("~/App_Data/XMLFile.xml"));
string xml = sr2.ReadToEnd();
sr2.Close();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
xml = HttpUtility.UrlEncode(xmlDoc.OuterXml);
System.Text.UTF8Encoding encoding = new UTF8Encoding();
string postData = "xmldata=" + xml;
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://localhost:1994/TestXMLPost/PostData.aspx");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();
WebResponse res = (HttpWebResponse)myRequest.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string str = sr.ReadToEnd();
sr.Close();
На PostData.aspx я сделал это для целей тестирования
if (Request.Form.Count > 0)
{
Response.Write( Request.Form["xmldata"] + "");
}
Я не получил ничего в ответе,Только ошибка «Удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера».Вот HTML-форма, которую я хочу смоделировать с помощью HttpWebRequest.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>testing</title>
</head>
<body>
<form action="https://myurl.com/samplepage.cfm" method="post" >
integration_id<input type="text" name="integration_id" value="id" /><br />
integration_pwd<input type="text" name="integration_pwd" value="pwd" /><br />
<textarea name="hrxml" style="height: 404px; width: 593px">
<?xml version="1.0" encoding="UTF-8"?>
<BackgroundCheck account="test" userId="test" password="test">
<BackgroundSearchPackage>
<ReferenceId>
<IdValue>12345678</IdValue>
</ReferenceId>
<PersonalData>
<PersonName>
<GivenName>TEST</GivenName>
<FamilyName primary="undefined">TEST</FamilyName>
</PersonName>
<DemographicDetail>
<GovernmentID countryCode="US" issuingAuthority="SSN">00000000000000</GovernmentID>
<DateOfBirth>1901-01-01</DateOfBirth>
</DemographicDetail>
</PersonalData>
</BackgroundSearchPackage>
</BackgroundCheck>
</textarea>
<input type="submit" />
</form>
</body>
</html>
Спасибо