Я пытаюсь добавить документ в индекс с помощью c # (xml), но всегда получаю ошибку 400 (неверный запрос). Есть идеи, что я делаю не так?
Код:
private static string GetXml()
{
XDocument document = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("add",
new XElement("doc",
new XElement("field",
new XAttribute("name", "employeeId"),
new XText("05991")),
new XElement("field",
new XAttribute("name", "skills"),
new XText("Perl"))
)
)
);
return document.ToString(SaveOptions.DisableFormatting);
}
private static void AddDocument()
{
string content = GetXml();
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://mysolrhost:8080/solr/update");
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
byte[] byteArray = Encoding.UTF8.GetBytes(content);
request.ContentLength = byteArray.Length;
using (var requestStream = request.GetRequestStream())
using (var sw = new StreamWriter(requestStream))
{
sw.Write(content);
}
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse) response).StatusDescription);
}
public static void Main(string[] args)
{
AddDocument();
}
Редактировать: проблема решена (см. Ответ ниже).
Большое спасибо!