Я впервые работаю с solr, и у меня возникают проблемы с отправкой веб-запроса на размещение продуктов в моей библиотеке solr.
Это мой код:
private static void PostProductToSolr(Product p)
{
string solrFieldsXML =
"<add>" + "\n" +
"<doc>" + "\n" +
"<field name=\"id\">" + p.ID + "</field>" + "\n" +
"<field name=\"name_s\">" + p.Name + "</field>" + "\n" +
"<field name=\"title_s\">" + p.Title + "</field>" + "\n" +
"<field name=\"ShortDescription_txt\">" + p.ShortDescription + "</field>" + "\n" +
"<field name=\"LongDescription_txt\">" + p.LongDescription + "</field>" + "\n" +
"<field name=\"ShortSummaryDescription_txt\">" + p.ShortSummary + "</field>" + "\n" +
"<field name=\"LongSummaryDescription_txt\">" + p.LongSummary + "</field>" + "\n" +
"<field name=\"price_d\">" + p.Price + "</field>" + "\n" +
"<field name=\"category_s\">" + p.FkCategoryId + "</field>" + "\n" +
"</doc>" + "\n" +
"</add>";
Post(solrFieldsXML);
//File.WriteAllText(@"C:\Users\ssb\Documents\ProductXml\product_" + p.ID + ".xml", solrFieldsXML);
}
private static void Post(string body)
{
string url = @"http://localhost:8983/solr/LenovoProducts/update";
var request = (HttpWebRequest)WebRequest.Create(url);
var data = Encoding.ASCII.GetBytes(body);
request.Method = "POST";
request.ContentType = "application/xml";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Console.WriteLine(responseString);
}
И когда я запускаю его, я получаю 400 плохих запросов. ошибка
РЕДАКТИРОВАТЬ: удается опубликовать первый продукт, но все равно выдает ошибку в ответ, как видно на изображении, что останавливает программу от публикации следующего продукта.
Это мой solr log: Solr Log