Проводка объекта как xml в Solr - PullRequest
0 голосов
/ 04 марта 2020

Я впервые работаю с 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...