2010-01-11 2 views
0

다음은 스 니펫입니다.이 방법은 C#에서 어떻게됩니까? [VisualBasic.Net에서]

Function Encode(ByVal dec As String) As String 

     Dim bt() As Byte 
     ReDim bt(dec.Length) 
     bt = System.Text.Encoding.ASCII.GetBytes(dec) 
     Dim enc As String 
     enc = System.Convert.ToBase64String(bt) 
     Return enc 
    End Function 

웹 사이트에 업로드 할 이미지를 보내는 프로그램을 만들려고합니다. 파이썬의 코드는 다음과 같습니다. C#으로 포팅하려고 합니다만 파이썬을 몰라서 조금 혼란 스럽습니다.

#!/usr/bin/python 

import pycurl 

c = pycurl.Curl() 
values = [ 
      ("key", "YOUR_API_KEY"), 
      ("image", (c.FORM_FILE, "file.png"))] 
# OR:  ("image", "http://example.com/example.jpg"))] 
# OR:  ("image", "BASE64_ENCODED_STRING"))] 

c.setopt(c.URL, "http://imgur.com/api/upload.xml") 
c.setopt(c.HTTPPOST, values) 

c.perform() 
c.close() 

Image.png 파일을 Base64 문자열로 변환하기로되어 있습니까? 도와주세요.

+4

VB.NET 메소드를 C# 또는 Python 스크립트로 이식하려고합니까? – Aaronaught

+0

Python 스크립트는 API 문서 사이트에서 제공되는 작동 예제입니다. 파이썬 스크립트를 C#으로 변환하는 방법을 찾고 있습니다. 그 중 작은 부분은 (내가 생각하기에) 내가 Visual Basic에 게시 한 내용이지만 VB에 익숙하지 않아서 그들이 무엇을하는지 이해할 수 없다. –

답변

4

VB.NET : 그래서

string Encode(string dec) 
{ 
    return 
     Convert.ToBase64String(
      Encoding.ASCII.GetBytes(dec)); 
} 

당신이 (파일 업로드) C 번호에 파이썬에 대해 얘기 : 사용자가 설정해야하는 경우

WebClient wc = new WebClient(); 
wc.UploadFile("http://imgur.com/api/upload.xml", "POST", "file.png"); 

가 아마이 이름을 필드 그것은 처음부터 요청으로 빌드 스크립트, 더 좋은 시작이다 : 또한 Upload files with HTTPWebrequest (multipart/form-data)

을,이 시도 :

WebClient wc = new WebClient(); 
wc.UploadData(
    "http://imgur.com/api/upload.xml", "POST", 
    Encoding.UTF8.GetBytes(
     String.Join("&", 
      new Dictionary<string, string>() 
      { 
       { "key", "YOUR_API_KEY" }, 
       { "image", Convert.ToBase64String(File.ReadAllBytes("file.png"))} 
      }.Select(item => 
       String.Format("{0}={1}", 
        item.Key, HttpUtility.UrlEncode(item.Value))) 
      .ToArray()))); 
+0

C# 버전이 실제로 파이썬 버전보다 짧기 때문에 이것을 좋아합니다. – Aaronaught

+0

예외가 발생했습니다. 내 API 키를 사용하지 않았기 때문에 예외라고 생각합니다. API 키는 어디에 삽입해야합니까? –

관련 문제