Я пытаюсь заменить Webclient на HttpClient для моей текущей функциональности в моем проекте. HttpClient не выдает никакой ошибки, но не удаляет индекс из Solr. Чего мне не хватает?
Это дает мне: отсутствует тип контента
Как правильно передать тип контента?
WebClient:
public static byte[] deleteIndex(string id)
{
System.Uri uri = new System.Uri(solrCoreConnection + "/update?commit=true");
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "text/xml";
return wc.UploadData(uri, "POST", Encoding.ASCII.GetBytes("<delete><id>" + id + "</id></delete>"));
}
}
HttpClient: (без ошибок, но индекс не удаляется)
public static async Task<HttpResponseMessage> deleteIndex(string id)
{
System.Uri uri = new System.Uri(solrCoreConnection + "/update?commit=true");
ResettableLazy<HttpClient> solrClient = new ResettableLazy<HttpClient>(SolrInstanceFactory);
solrClient.Value.DefaultRequestHeaders.Add("ContentType", "text/xml");
byte[] bDelete = Encoding.ASCII.GetBytes("<delete><id>" + id + "</id></delete>");
ByteArrayContent byteContent = new ByteArrayContent(bDelete);
HttpResponseMessage response = await solrClient.Value.PostAsync(uri.OriginalString, byteContent);
var contents = await response.Content.ReadAsStringAsync();
return response;
}
Это дает мне: отсутствует тип контента
Как правильно передать тип контента?
{
"responseHeader":{
"status":415,
"QTime":1},
"error":{
"metadata":[
"error-class","org.apache.solr.common.SolrException",
"root-error-class","org.apache.solr.common.SolrException"],
"msg":"Missing ContentType",
"code":415}}