Adakah yang tahu cara menggunakan HttpClient
in .Net 4.5 dengan multipart/form-data
mengunggah?
Saya tidak dapat menemukan contoh di internet.
Adakah yang tahu cara menggunakan HttpClient
in .Net 4.5 dengan multipart/form-data
mengunggah?
Saya tidak dapat menemukan contoh di internet.
Jawaban:
hasil saya terlihat seperti ini:
sumber
new MultipartFormDataContent(...)
mengandung karakter batas yang tidak valid (mungkin pemisah "/"). Tidak ada kesalahan, hanya tidak ada file yang diposting ke server - dalam kasus saya, Context.Request.Files.Count = 0 di pengontrol API. Mungkin hanyaNancy
masalah, tapi saya sarankan menggunakan sesuatu sepertiDateTime.Now.Ticks.ToString("x")
gantinya.key
danfileName
parameter untukcontent
( bilddatei dan upload.jpg dalam contoh ini).Ini berfungsi kurang lebih seperti ini (misalnya menggunakan file gambar / jpg):
(Anda dapat
requestContent.Add()
apa pun yang Anda inginkan, lihat keturunan HttpContent untuk melihat tipe yang tersedia untuk dilewati)Setelah selesai, Anda akan menemukan konten respons di dalamnya
HttpResponseMessage.Content
yang dapat Anda konsumsiHttpContent.ReadAs*Async
.sumber
// here you can specify boundary if you need---^
:)async
di baris pertama danawait
di baris sebelum yang terakhir tidak perlu.Ini adalah contoh cara memposting string dan aliran file dengan HTTPClient menggunakan MultipartFormDataContent. Disposisi Konten dan Tipe Konten perlu ditentukan untuk setiap konten HTTPC:
Inilah contoh saya. Semoga ini bisa membantu:
sumber
MultipartFormDataContent
. Salam kepada Anda, TuanContent-Type
danContent-Disposition
OK, tetapi pada Server 2008 R2 (IIS 7.5) tidak dapat menemukan file, itu aneh. Jadi saya lakukan sebagai jawabannya.Berikut adalah contoh lain tentang cara menggunakan
HttpClient
untuk mengunggah amultipart/form-data
.Ini mengunggah file ke REST API dan menyertakan file itu sendiri (misalnya JPG) dan parameter API tambahan. File langsung diunggah dari disk lokal melalui
FileStream
.Lihat di sini untuk contoh lengkap termasuk tambahan logika spesifik API.
sumber
Coba ini bekerja untuk saya.
sumber
TestServer.CreatClient()
skenario .NET Core dari tes integrasi untuk unggahan data + file.Ini contoh lengkap yang bekerja untuk saya. The
boundary
nilai dalam permintaan ditambahkan secara otomatis oleh NET.sumber
Contoh dengan preloader Dotnet 3.0 Core
sumber
sumber
Saya menambahkan cuplikan kode yang menunjukkan cara memposting file ke API yang telah diekspos di DELETE http verb. Ini bukan kasus umum untuk mengunggah file dengan DELETE http verb tetapi diizinkan. Saya berasumsi otentikasi Windows NTLM untuk otorisasi panggilan.
Masalah yang mungkin dihadapi adalah bahwa semua kelebihan
HttpClient.DeleteAsync
metode tidak memiliki parameter untukHttpContent
cara kita mendapatkannya dalamPostAsync
metodeAnda perlu ruang nama di bawah ini di bagian atas file C # Anda:
PS Maaf tentang begitu banyak menggunakan blok (pola IDisposable) dalam kode saya. Sayangnya, sintaks menggunakan konstruk C # tidak mendukung inisialisasi beberapa variabel dalam satu pernyataan.
sumber
sumber