2017-01-12 7 views
1

私はC#プロジェクトを作成中です。私は、外部のWebサービスを呼び出し、バイナリデータとしてファイルを投稿し、その応答を読み取る必要があります。以下 は、私は、「アプリケーション/オクテットストリーム」などのコンテンツタイプに合格している私のコードc#を使用してWebクライアントにバイナリデータを投稿する

var webClient = new WebClient(); 
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo); 
webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary); 
var fileData = webClient.Encoding.GetString(file); 
var package = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n{3}\r\n--{0}--\r\n", boundary, filename, contentType, fileData); 
var nfile = webClient.Encoding.GetBytes(package); 
byte[] resp = webClient.UploadData(url, "POST", nfile); 

です。 私は確かに何かを欠いているが、それを理解できない。

+0

を参照してください。それはあなたのための喧嘩のビットを処理します。 –

+0

あなたは単純に 'WebClient.UploadFile'を試しましたか? [MSDN](https://msdn.microsoft.com/en-us/library/36s52zhs(v = vs.110).aspx)を参照してください。 – Dillanm

+0

@Dillanmコード内にコンテンツの種類を指定する必要はありません。 – Neha

答えて

1

WebClient.UploadFileを試しましたか?あなたはむしろWebClient` ``よりHttpClient`を使用したほうが良いと思いますMSDN

(後世のための答えとして掲載)

関連する問題