Usando api webclient

Pjoao 1578 0 Pontos de reputação
2024-05-30T20:07:01.8233333+00:00

Boa noite amigos, eu gostaria de compartilha meu codigo para fazer uma pergunta :

Meu codigo é

Dim API As String = "47c1b6b8aa9c2245"

    Dim UploadFile As String = "C:\Users\testefile.exe"

    Dim FileByte As New ByteArrayContent(File.ReadAllBytes(UploadFile))

    Dim API_URL As String = "https://site"

    Dim Client As New HttpClient

    Dim Multi As New MultipartFormDataContent

    Client.DefaultRequestHeaders.Add("X-Auth-Token", API)

    With Multi

        .Add(FileByte, "path", Path.GetFileName(UploadFile))

        .Add(New StringContent("all"), "nameargg")

    End With

    Dim response = Await Client.PostAsync(API_URL, Multi)

    response.EnsureSuccessStatusCode()

    Dim Resultado As String = Await response.Content.ReadAsStringAsync()

tentei fazer isso usando a class webclient mais nao tive resultando passando : Uploadfile E Queristring para or argumentos porem nao tive resultado. A Pergunta è: Seria possivel usa essa api usando webclient codigo mais simples possivel ?

.NET
.NET
Tecnologias da Microsoft baseadas na estrutura de software do .NET.
27 perguntas
0 comentários Sem comentários
{count} votos

1 resposta

Classificar por: Mais útil
  1. José Elton Figueiredo Cavalcante 0 Pontos de reputação
    2024-06-04T20:07:23.62+00:00

    Sim, é possível usar a classe WebClient para fazer upload de arquivos, mas ela é mais limitada em comparação com HttpClient e pode ser um pouco mais complexa. Aqui está um exemplo de como você poderia fazer isso com WebClient:

    Dim API As String = "47c1b6b8aa9c2245"
    Dim UploadFile As String = "C:\Users\testefile.exe"
    Dim API_URL As String = "https://site"
    
    Using client As New WebClient()
        client.Headers.Add("X-Auth-Token", API)
        
        ' Cria a QueryString para enviar os parâmetros adicionais
        Dim queryString As New NameValueCollection()
        queryString.Add("nameargg", "all")
        
        ' Faz o upload do arquivo com a QueryString
        client.QueryString = queryString
        Dim responseBytes As Byte() = client.UploadFile(API_URL, UploadFile)
        Dim responseString As String = Encoding.UTF8.GetString(responseBytes)
        
        Console.WriteLine(responseString)
    End Using
    

    O WebClient não suporta nativamente o envio de conteúdo multipart/form-data de forma tão flexível quanto HttpClient.

    0 comentários Sem comentários

Sua resposta

As respostas podem ser marcadas como Respostas Aceitas pelo autor da pergunta, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.