我对ASP.NET HTTPCLIENT POST请求有问题。实际上,我想使用Solrcell在Solr中索引文档。我已经使用了这样的卷发:
curl 'http://localhost:8983/solr/my_collection/update/extract?literal.id=doc1&commit=true' -F "myfile=@example/exampledocs/solr-word.pdf"
不幸的是,我只能将文件作为多部分文件上传(使用HTTPCLIENT)发送,这样我就需要确定文件的MIME类型,但我仍然遇到了DOCX和PPTX文件的错误。
这是我的代码:
var fileBytes = File.ReadAllBytes(path);
requestContent.Add(new ByteArrayContent(fileBytes), "file");
requestContent.Headers.Remove("Content-Type");
requestContent.Headers.Add("Content-Type", contentType);
var response = await client.PostAsync(defaultSolrUri, requestContent);
return response.Content;
请帮助。
我找到了解决方案!无需通过MultipartFormData,您需要做的就是将文件传递为PostAsyn中的bytearraycontent:
string path = "path/to/file";
var fileBytes = File.ReadAllBytes(path);
var response = await client.PostAsync(defaultSolrExtractUri, new ByteArrayContent(fileBytes));
return response.Content;