我的要求是:我有.NET dll,它将接受文件名。 .NET dll将调用tika服务器,并将文件作为流传递,并且应该返回元数据,并且将使用所需格式(Json to string)完成自定义解析。 Tika服务器正在运行,我通过打开http://localhost:9998网址验证它是否正在运行。 对于所有类型的文件高达40 MB(从我测试过的文件类型)它工作正常。当我尝试传递大小为42 MB的文件(TIF)时,我从Tika服务器收到以下错误。
消息{StatusCode:500,ReasonPhrase:'服务器错误',版本:1.1,内容:System.Net.Http.StreamContent,标头: { 连接:关闭 服务器:Jetty(8.y.z-SNAPSHOT) System.Net.Http.HttpResponseMessage
ReasonPhrase "Server Error"
以下是我使用的代码
private string ExtractMetadata(string fileName)
{
const string RequestUri = "meta/form";
const string JSONType = "application/json";
var file = File.ReadAllBytes(fileName);
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(Url);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(JSONType));
using (var content = new MultipartFormDataContent())
{
content.Add(new StreamContent(new MemoryStream(file)));
using (var message = client.PostAsync(RequestUri, content).Result)
{
return message.Content.ReadAsStringAsync().Result;
}
}
}
}
从Google搜索点到Tika文档的所有链接,但没有提供有关使用更大文件的问题或如何使用多部分的任何示例。在这里,我使用了multipart,它适用于较小尺寸的文件。仅对于较大的文件,我收到上述错误。 非常感谢任何帮助。