Как этот метод будет в C #? [Из VisualBasic.Net] - PullRequest
0 голосов
/ 11 января 2010

Вот фрагмент:

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 

Я пытаюсь создать программу, которая отправляет изображение для загрузки на веб-сайт. Вот код на Python, я пытаюсь перенести его на C #, но это немного запутанно, потому что я не знаю Python.

#!/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? Пожалуйста, помогите.

1 Ответ

4 голосов
/ 11 января 2010

VB.NET для C #:

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

Итак, вы говорите о Python для C # (загрузка файла):

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

Если вам нужно задать имя этого поля, возможно, этот сценарий лучше начать, поскольку он создает запрос с нуля: Загрузка файлов с помощью 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())));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...