Page 1 of 1

.NET 8, httpclient und Datei -Uploads: Was fehlt mir? Erstellen von Anforderungen mit Header- und Abfragungsparams

Posted: 11 Apr 2025, 16:58
by Anonymous
Hier ist ein .NET 4.6.2 API -Web -Client, das eine Datei hochladen - einfache Dinge: < /p>

Code: Select all

var webClient = new ApiWebClient();
webClient.Timeout = timeout;

webClient.Headers.Add( HttpHeaderNames.CONTENT_TYPE, contentType );
webClient.Headers.Add( HttpHeaderNames.CONTENT_DISPOSITION, disp );

foreach (var h in _headers)
webClient.Headers.Add(h.Key, h.Value);

respBytes = webClient.UploadFile(FullUrl, fileFullPath);
Mein Problem ist es, eine Datei in .NET 8 mit httpclient zu hochladen. Die aktuelle Iteration meines Codes ist ungefähr so: < /p>

Code: Select all

var httpClient = GetHttpClient(); // gets from the HttpClientFactory
httpClient.Timeout = new TimeSpan( 0, 0, timeout );

var uriBuilder = BuildUriWithGets();
var req = new HttpRequestMessage( HttpVerb, uriBuilder.ToString() );
req.Headers.TryAddWithoutValidation( HttpHeaderNames.CONTENT_TYPE, contentType );
req.Headers.TryAddWithoutValidation( HttpHeaderNames.CONTENT_DISPOSITION, disp );

foreach (var h in _headers)
request.Headers.TryAddWithoutValidation(h.Key, h.Value);

HttpResponseMessage resp;

using var requestContent = new MultipartFormDataContent();
using var fileStream = File.OpenRead(fileFullPath);

requestContent.Add(new StreamContent(fileStream));
req.Content = requestContent;

resp = httpClient.Send(req);
< /code>
Ist dies die richtige Möglichkeit, eine Datei mit Header- und Abfrageparamien zu senden? Ich möchte, dass die Datei der Parameter "Datei" ist (ich habe Iterationen dazu ohne Verfügbarkeit ausprobiert). Ich könnte die apiwebclient 
-Anforderung und die Anfrage httpclient vergleichen, um zu sehen, was fehlt.