2016-08-01 6 views
0

私にはREST APIを呼び出すための関数があります。私はリクエストで画像を渡す必要があります。どのように達成するのですか? EX用REST APIリクエストに画像を送信する

:ここ

public int Save(Image image) 
{ 
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
    req.Method = "POST"; 
    HttpWebResponse response = (HttpWebResponse)req.GetResponse(); 
} 

は、どのように私は私の要求 'REQ' に私の 'イメージ' を渡すのですか?

+0

http://stackoverflow.com/questions/10320232/how-to-accept-a-file-post-asp-net-mvc-4-webapi –

答えて

1

のようなものを使用してみてください:あなたは、クライアント側でこのような何かを行うことができ

req.ContentType = "multipart/form-data"; 

using (var ms = new MemoryStream()) 
{ 
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); //if it is jpeg 
    string encoded = Convert.ToBase64String(ms.ToArray()); 
    byte[] reqData = Encoding.UTF8.GetBytes(encoded); 
    using (var stream = req.GetRequestStream()) 
    { 
     stream.Write(reqData, 0, reqData.Length); 
    } 
} 
+0

@Buckyの可能性のある重複あなたは受け入れることにアレルギーがあります答え? – Marusyk

0

HttpClient client = new HttpClient(); 
var imageStream = File.OpenRead(@"C:\p1.jpg"); 
var content = new StreamContent(imageStream); 
content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); 
var response = await client.PostAsync("URL", content); 

あなたはNugetPackage Microsoft.Net.Http

から のHttpClientを得ることができます

REST API側(受信側)では、次のようなRequest.Contentオブジェクトから取得できます。

public void Post() 
{ 
      using (var fileStream = File.Create("C:\\NewFile.jpg")) 
      { 
       using (MemoryStream tempStream = new MemoryStream()) 
       { 
        var task = this.Request.Content.CopyToAsync(tempStream); 
        task.Wait(); 

        tempStream.Seek(0, SeekOrigin.Begin); 
        tempStream.CopyTo(fileStream); 
        tempStream.Close(); 
       } 

      } 
} 
関連する問題