2014-03-19 5 views
0

어떻게 웹 서비스를 통해 사진을 게시하려면 다음 파이썬 코드가 있습니다후 C#에서 WebRequest 클래스를 사용하여 사진

product_image = requests.post(
'https://client.planorama.com/tapi/v1/product_image/', 
data={ 'product_id': 1784682 }, 
files={ "file": open(my_image.jpg, 'rb') } 
) 

사람이 C#에서 같은 일을하는 데 도움이 수,

답변

0

우리는 오히려됩니다 파이썬에서 requests 라이브러리로 망칠

.NET 4 또는 4.5를 실행하고 있습니까? 그렇다면 Sending Files using HTTP POST in c#에 대한 Joshcodes 응답을보십시오 - far에 의해 Microsoft.Net.Http을 사용합니다. 요즘 .NET 세계에서 가장 좋은 HTTP 라이브러리입니다.

UPDATE : 아직 정확성이 확인하지 않은,하지만 이런 식으로 뭔가를 갈 수 :

static HttpResponseMessage UploadFileWithParam(string requestUri, string fileName, string key1, string val1) 
{ 
    using (var client = new HttpClient()) 
    { 
     using (var content = new MultipartFormDataContent()) 
     { 
      content.Add(new StringContent(val1), key1); 
      var fileContent = new StreamContent(File.OpenRead(fileName)); 
      fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") 
      { 
       FileName = fileName 
      }; 
      content.Add(fileContent); 
      return client.PostAsync(requestUri, content).Result; 
     } 
    } 
} 

// UploadFileWithParam("http://example.com", @"c:\...", "param1", "value1").Dump(); 
+0

응답 해 주셔서 감사합니다. 내가 가지고있는 proble은 productId와 파일 (그림) 인 두 개의 매개 변수를 전달해야합니다. 파이썬에서는 쉽지만 .net에서는 파일 스트림을 사용하여 이미지를 읽는 방법을 알고 있지만 매개 변수 값으로 전달하는 방법은 없습니다. – user2143201

+0

위의 스 니펫을 추가 했으므로 도움이 될 것입니다. 나는 LINQPad (https://www.linqpad.net)로 그것을 시험해보고 파이썬과 .NET 버전 사이의 요청을 피 들러 (http://www.telerik.com/fiddler)를 통해 비교할 것이다. – Aaron

+0

업데이트 주셔서 감사합니다. 시도해 볼게. 잘하면 내 문제를 해결할 것입니다 – user2143201

0

Multipart Form Post in C#는 제공 (작업) 예와 HttpWebRequest를 사용하여 간단한 C# 클래스가 포함되어 있습니다.

+0

링크를 가져 주셔서 감사합니다. 그러나 그림을 매개 변수 값으로 게시하는 방법을 보여주지는 않습니다. 매개 변수 이름은 파일이며, 그림을 파일 값으로 전달하는 방법은 무엇입니까? – user2143201

+0

다음과 같습니다 :'postParameters.Add ("file", 새로운 FormUpload.FileParameter (data, "my_image.jpg", "image/jpg"))'(그림이 들어있는 파일 스트림 인 데이터)는 원하는 것입니다 – 0x8BADF00D

+0

너, 그게 내가 원하는거야.하지만 나는 똑같은 방법으로 제품을 넘겨 줄 것인가? 왜냐하면 파일과 productId가 모두 게시되어야하기 때문입니다. 또한 액세스 권한을 얻기 위해 자격 증명을 사용해야합니다. 어떻게 가야합니까? – user2143201

관련 문제