2016-12-26 10 views
0

私はASP.Net HttpClient POSTリクエストに問題があります。 実際、SolrでSolrCellを使用してドキュメントのインデックスを作成する必要があります。私はこのようなカール使用していますHttpclient asp.net core curl equivalent

curl 'http://localhost:8983/solr/my_collection/update/extract?literal.id=doc1&commit=true' -F "[email protected]/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; 

助けてください。

+0

'contentType'変数の値は、ここでは何ですか? –

+0

application/vnd.openxmlformats-officedocument.presentationml.presentation –

+0

ファイル拡張子:pptx MIMEタイプ:application/vnd.openxmlformats-officedocument.presentationml.presentation –

答えて

1

解決策が見つかりました! 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;